summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-04-16 09:29:53 +0200
committerGitHub <noreply@github.com>2024-04-16 09:29:53 +0200
commitfff89d25bd3c7b874e68261d21695c473c30ed7d (patch)
treebe368dd745e8119dbdefd9cd0b012c7ff9080a7a
parenta7b0afbb5b7059274962ade234a50240677008fd (diff)
Revamped the trace system. All TraceFormat files are now in the api m… (#216)
* Revamped the trace system. All TraceFormat files are now in the api module. This fixes some problems with not being able to use types of traces * applied spotless
-rw-r--r--opendc-experiments/opendc-experiments-base/build.gradle.kts1
-rw-r--r--opendc-experiments/opendc-experiments-portfolio/build.gradle.kts1
-rw-r--r--opendc-experiments/opendc-experiments-scenario/build.gradle.kts1
-rw-r--r--opendc-trace/opendc-trace-api/build.gradle.kts7
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceStateTableReader.kt (renamed from opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceTableReader.kt (renamed from opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureTraceFormat.kt (renamed from opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExResourceStateTableReader.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExTraceFormat.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceStateTableReader.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceTableReader.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsTraceFormat.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTaskTableReader.kt (renamed from opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTraceFormat.kt (renamed from opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableReader.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableReader.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableWriter.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableWriter.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableReader.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt)4
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableWriter.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt)4
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableReader.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt)4
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableWriter.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt)4
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmTraceFormat.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt)10
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/Resource.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/Resource.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceReadSupport.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceReadSupport.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceRecordMaterializer.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceRecordMaterializer.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceState.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceState.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateReadSupport.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateReadSupport.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateRecordMaterializer.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateRecordMaterializer.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateWriteSupport.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateWriteSupport.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceWriteSupport.kt (renamed from opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceWriteSupport.kt)2
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTaskTableReader.kt (renamed from opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTraceFormat.kt (renamed from opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTaskTableReader.kt (renamed from opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTraceFormat.kt (renamed from opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTaskTableReader.kt (renamed from opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTraceFormat.kt (renamed from opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/Task.kt (renamed from opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/Task.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskReadSupport.kt (renamed from opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskReadSupport.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskRecordMaterializer.kt (renamed from opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskRecordMaterializer.kt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt29
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/azure/AzureTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt)19
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsExTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt)15
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt)19
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/gwf/GwfTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt)17
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/opendc/OdcVmTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt)33
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/swf/SwfTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt)15
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTaskTableReaderTest.kt (renamed from opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt)3
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt)15
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableReaderTestKit.kt190
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableWriterTestKit.kt131
-rw-r--r--opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/WtfTraceFormatTest.kt (renamed from opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt)14
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz (renamed from opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz)bin6905 -> 6905 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vmtable/vmtable.csv.gz (renamed from opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv.gz)bin1423 -> 1423 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/bitbrains/bitbrains.csv (renamed from opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/bitbrains/vm.txt (renamed from opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/gwf/trace.gwf (renamed from opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/meta.parquet (renamed from opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet)bin1582 -> 1582 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/trace.parquet (renamed from opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet)bin83524 -> 83524 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/interference-model.json (renamed from opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/interference-model.json)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/meta.parquet (renamed from opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet)bin1679 -> 1679 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/trace.parquet (renamed from opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet)bin65174 -> 65174 bytes
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/swf/trace.swf (renamed from opendc-trace/opendc-trace-swf/src/test/resources/trace.swf)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/wfformat/trace.json (renamed from opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json)0
-rwxr-xr-xopendc-trace/opendc-trace-api/src/test/resources/wtf/shell/tasks/schema-1.0/part.0.parquet (renamed from opendc-trace/opendc-trace-wtf/src/test/resources/shell/tasks/schema-1.0/part.0.parquet)bin259381 -> 259381 bytes
-rwxr-xr-xopendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workflows/schema-1.0/part.0.parquet (renamed from opendc-trace/opendc-trace-wtf/src/test/resources/shell/workflows/schema-1.0/part.0.parquet)bin63858 -> 63858 bytes
-rwxr-xr-xopendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workload/schema-1.0/generic_information.json (renamed from opendc-trace/opendc-trace-wtf/src/test/resources/shell/workload/schema-1.0/generic_information.json)0
-rw-r--r--opendc-trace/opendc-trace-api/src/test/resources/wtf/wtf-trace/tasks/schema-1.0/part.0.parquet (renamed from opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet)bin87475 -> 87475 bytes
-rw-r--r--opendc-trace/opendc-trace-azure/build.gradle.kts36
-rw-r--r--opendc-trace/opendc-trace-azure/src/jmh/kotlin/org/opendc/trace/azure/AzureTraceBenchmarks.kt82
-rw-r--r--opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-trace/opendc-trace-bitbrains/build.gradle.kts35
-rw-r--r--opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat2
-rw-r--r--opendc-trace/opendc-trace-calcite/build.gradle.kts1
-rw-r--r--opendc-trace/opendc-trace-gwf/build.gradle.kts36
-rw-r--r--opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-trace/opendc-trace-opendc/build.gradle.kts39
-rw-r--r--opendc-trace/opendc-trace-opendc/src/jmh/kotlin/org/opendc/trace/opendc/OdcVmTraceBenchmarks.kt97
-rw-r--r--opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-trace/opendc-trace-swf/build.gradle.kts34
-rw-r--r--opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-trace/opendc-trace-tools/build.gradle.kts7
-rw-r--r--opendc-trace/opendc-trace-wfformat/build.gradle.kts36
-rw-r--r--opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-trace/opendc-trace-wtf/build.gradle.kts37
-rw-r--r--opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat1
-rw-r--r--opendc-web/opendc-web-runner/build.gradle.kts3
-rw-r--r--opendc-workflow/opendc-workflow-service/build.gradle.kts1
-rw-r--r--settings.gradle.kts11
87 files changed, 459 insertions, 560 deletions
diff --git a/opendc-experiments/opendc-experiments-base/build.gradle.kts b/opendc-experiments/opendc-experiments-base/build.gradle.kts
index d7d8f235..07d207a3 100644
--- a/opendc-experiments/opendc-experiments-base/build.gradle.kts
+++ b/opendc-experiments/opendc-experiments-base/build.gradle.kts
@@ -42,7 +42,6 @@ dependencies {
implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-core")))
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology")))
- runtimeOnly(projects.opendcTrace.opendcTraceOpendc)
runtimeOnly(libs.log4j.core)
runtimeOnly(libs.log4j.slf4j)
}
diff --git a/opendc-experiments/opendc-experiments-portfolio/build.gradle.kts b/opendc-experiments/opendc-experiments-portfolio/build.gradle.kts
index c3ff33e0..f8fdd00b 100644
--- a/opendc-experiments/opendc-experiments-portfolio/build.gradle.kts
+++ b/opendc-experiments/opendc-experiments-portfolio/build.gradle.kts
@@ -50,7 +50,6 @@ dependencies {
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-workload")))
implementation(project(mapOf("path" to ":opendc-experiments:opendc-experiments-base")))
- runtimeOnly(projects.opendcTrace.opendcTraceOpendc)
runtimeOnly(libs.log4j.core)
runtimeOnly(libs.log4j.slf4j)
}
diff --git a/opendc-experiments/opendc-experiments-scenario/build.gradle.kts b/opendc-experiments/opendc-experiments-scenario/build.gradle.kts
index bf0a504d..d44a0aa7 100644
--- a/opendc-experiments/opendc-experiments-scenario/build.gradle.kts
+++ b/opendc-experiments/opendc-experiments-scenario/build.gradle.kts
@@ -50,7 +50,6 @@ dependencies {
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-workload")))
implementation(project(mapOf("path" to ":opendc-experiments:opendc-experiments-base")))
- runtimeOnly(projects.opendcTrace.opendcTraceOpendc)
runtimeOnly(libs.log4j.core)
runtimeOnly(libs.log4j.slf4j)
}
diff --git a/opendc-trace/opendc-trace-api/build.gradle.kts b/opendc-trace/opendc-trace-api/build.gradle.kts
index 514cd777..02195ed0 100644
--- a/opendc-trace/opendc-trace-api/build.gradle.kts
+++ b/opendc-trace/opendc-trace-api/build.gradle.kts
@@ -26,3 +26,10 @@ description = "Workload trace library for OpenDC"
plugins {
`kotlin-library-conventions`
}
+dependencies {
+
+ implementation(libs.jackson.dataformat.csv)
+
+ implementation(project(mapOf("path" to ":opendc-trace:opendc-trace-parquet")))
+ testImplementation(project(mapOf("path" to ":opendc-trace:opendc-trace-testkit")))
+}
diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceStateTableReader.kt
index bcf6ff52..bcf6ff52 100644
--- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceStateTableReader.kt
diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceTableReader.kt
index d86a0466..d86a0466 100644
--- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureResourceTableReader.kt
diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureTraceFormat.kt
index a75da9d9..a75da9d9 100644
--- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/azure/AzureTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExResourceStateTableReader.kt
index 8387d1ed..8387d1ed 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExResourceStateTableReader.kt
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExTraceFormat.kt
index 6115953f..6115953f 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsExTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceStateTableReader.kt
index e264fccb..e264fccb 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceStateTableReader.kt
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceTableReader.kt
index a12785f0..a12785f0 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsResourceTableReader.kt
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsTraceFormat.kt
index 23853077..23853077 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/bitbrains/BitbrainsTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTaskTableReader.kt
index 8a2a99cb..8a2a99cb 100644
--- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTaskTableReader.kt
diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTraceFormat.kt
index 097c5593..097c5593 100644
--- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/gwf/GwfTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableReader.kt
index 7bf48f1a..dba971d7 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableReader.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import com.fasterxml.jackson.core.JsonParseException
import com.fasterxml.jackson.core.JsonParser
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableWriter.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableWriter.kt
index 93f5a976..b3286a1c 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmInterferenceJsonTableWriter.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmInterferenceJsonTableWriter.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import com.fasterxml.jackson.core.JsonGenerator
import org.opendc.trace.TableWriter
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableReader.kt
index 8e54f2b0..39475f9f 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableReader.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import org.opendc.trace.TableReader
import org.opendc.trace.conv.resourceCpuCount
@@ -28,7 +28,7 @@ import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateDuration
import org.opendc.trace.conv.resourceStateTimestamp
-import org.opendc.trace.opendc.parquet.ResourceState
+import org.opendc.trace.formats.opendc.parquet.ResourceState
import org.opendc.trace.util.parquet.LocalParquetReader
import java.time.Duration
import java.time.Instant
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableWriter.kt
index 01cd13c8..1421d77c 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceStateTableWriter.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import org.apache.parquet.hadoop.ParquetWriter
import org.opendc.trace.TableWriter
@@ -29,7 +29,7 @@ import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateDuration
import org.opendc.trace.conv.resourceStateTimestamp
-import org.opendc.trace.opendc.parquet.ResourceState
+import org.opendc.trace.formats.opendc.parquet.ResourceState
import java.time.Duration
import java.time.Instant
import java.util.UUID
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableReader.kt
index 195929aa..34197d7f 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableReader.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import org.opendc.trace.TableReader
import org.opendc.trace.conv.resourceCpuCapacity
@@ -29,7 +29,7 @@ import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceMemCapacity
import org.opendc.trace.conv.resourceStartTime
import org.opendc.trace.conv.resourceStopTime
-import org.opendc.trace.opendc.parquet.Resource
+import org.opendc.trace.formats.opendc.parquet.Resource
import org.opendc.trace.util.parquet.LocalParquetReader
import java.time.Duration
import java.time.Instant
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableWriter.kt
index 5bbc2f3f..e0a11368 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmResourceTableWriter.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import org.apache.parquet.hadoop.ParquetWriter
import org.opendc.trace.TableWriter
@@ -30,7 +30,7 @@ import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceMemCapacity
import org.opendc.trace.conv.resourceStartTime
import org.opendc.trace.conv.resourceStopTime
-import org.opendc.trace.opendc.parquet.Resource
+import org.opendc.trace.formats.opendc.parquet.Resource
import java.time.Duration
import java.time.Instant
import java.util.UUID
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmTraceFormat.kt
index 9abe872f..7a7bc834 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/OdcVmTraceFormat.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package org.opendc.trace.formats.opendc
import com.fasterxml.jackson.core.JsonEncoding
import com.fasterxml.jackson.core.JsonFactory
@@ -46,10 +46,10 @@ import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateDuration
import org.opendc.trace.conv.resourceStateTimestamp
import org.opendc.trace.conv.resourceStopTime
-import org.opendc.trace.opendc.parquet.ResourceReadSupport
-import org.opendc.trace.opendc.parquet.ResourceStateReadSupport
-import org.opendc.trace.opendc.parquet.ResourceStateWriteSupport
-import org.opendc.trace.opendc.parquet.ResourceWriteSupport
+import org.opendc.trace.formats.opendc.parquet.ResourceReadSupport
+import org.opendc.trace.formats.opendc.parquet.ResourceStateReadSupport
+import org.opendc.trace.formats.opendc.parquet.ResourceStateWriteSupport
+import org.opendc.trace.formats.opendc.parquet.ResourceWriteSupport
import org.opendc.trace.spi.TableDetails
import org.opendc.trace.spi.TraceFormat
import org.opendc.trace.util.parquet.LocalParquetReader
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/Resource.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/Resource.kt
index 13eefe72..e8efe60f 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/Resource.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/Resource.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import java.time.Instant
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceReadSupport.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceReadSupport.kt
index 8bada02e..75238344 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceReadSupport.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceReadSupport.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.hadoop.conf.Configuration
import org.apache.parquet.hadoop.api.InitContext
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceRecordMaterializer.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceRecordMaterializer.kt
index 6e2afa7a..2e32c2e2 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceRecordMaterializer.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceRecordMaterializer.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.parquet.io.api.Binary
import org.apache.parquet.io.api.Converter
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceState.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceState.kt
index 483f444c..64ab9dca 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceState.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceState.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import java.time.Duration
import java.time.Instant
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateReadSupport.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateReadSupport.kt
index 21e206a9..e7d35630 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateReadSupport.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateReadSupport.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.hadoop.conf.Configuration
import org.apache.parquet.hadoop.api.InitContext
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateRecordMaterializer.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateRecordMaterializer.kt
index 72d24e78..8ff0e476 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateRecordMaterializer.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateRecordMaterializer.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.parquet.io.api.Binary
import org.apache.parquet.io.api.Converter
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateWriteSupport.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateWriteSupport.kt
index 2a6d8c12..58c43916 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceStateWriteSupport.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceStateWriteSupport.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.hadoop.conf.Configuration
import org.apache.parquet.hadoop.api.WriteSupport
diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceWriteSupport.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceWriteSupport.kt
index ed62e2ce..a9937ffd 100644
--- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/parquet/ResourceWriteSupport.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/opendc/parquet/ResourceWriteSupport.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc.parquet
+package org.opendc.trace.formats.opendc.parquet
import org.apache.hadoop.conf.Configuration
import org.apache.parquet.hadoop.api.WriteSupport
diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTaskTableReader.kt
index 5a79fd6f..5a79fd6f 100644
--- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTaskTableReader.kt
diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTraceFormat.kt
index d59b07b4..d59b07b4 100644
--- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/swf/SwfTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTaskTableReader.kt
index 8f84e51f..8f84e51f 100644
--- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTaskTableReader.kt
diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTraceFormat.kt
index 2178fac6..2178fac6 100644
--- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wfformat/WfFormatTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTaskTableReader.kt
index 95582388..95582388 100644
--- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTaskTableReader.kt
diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTraceFormat.kt
index 1386d2ef..1386d2ef 100644
--- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/WtfTraceFormat.kt
diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/Task.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/Task.kt
index a1db0cab..a1db0cab 100644
--- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/Task.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/Task.kt
diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskReadSupport.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskReadSupport.kt
index 1f9c506d..1f9c506d 100644
--- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskReadSupport.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskReadSupport.kt
diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskRecordMaterializer.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskRecordMaterializer.kt
index 412a4f8b..412a4f8b 100644
--- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/parquet/TaskRecordMaterializer.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/formats/wtf/parquet/TaskRecordMaterializer.kt
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
index 83537822..89cac608 100644
--- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
@@ -24,6 +24,13 @@ package org.opendc.trace.spi
import org.opendc.trace.TableReader
import org.opendc.trace.TableWriter
+import org.opendc.trace.azure.AzureTraceFormat
+import org.opendc.trace.bitbrains.BitbrainsTraceFormat
+import org.opendc.trace.formats.opendc.OdcVmTraceFormat
+import org.opendc.trace.gwf.GwfTraceFormat
+import org.opendc.trace.swf.SwfTraceFormat
+import org.opendc.trace.wfformat.WfFormatTraceFormat
+import org.opendc.trace.wtf.WtfTraceFormat
import java.nio.file.Path
import java.util.ServiceLoader
@@ -107,13 +114,31 @@ public interface TraceFormat {
return ServiceLoader.load(TraceFormat::class.java)
}
+// /**
+// * Obtain a [TraceFormat] implementation by [name].
+// */
+// @JvmStatic
+// public fun byName(name: String): TraceFormat? {
+//
+// val loader = ServiceLoader.load(TraceFormat::class.java)
+// return loader.find { it.name == name }
+// }
+
/**
* Obtain a [TraceFormat] implementation by [name].
*/
@JvmStatic
public fun byName(name: String): TraceFormat? {
- val loader = ServiceLoader.load(TraceFormat::class.java)
- return loader.find { it.name == name }
+ return when (name) {
+ "opendc-vm" -> OdcVmTraceFormat()
+ "azure" -> AzureTraceFormat()
+ "bitbrains" -> BitbrainsTraceFormat()
+ "gwf" -> GwfTraceFormat()
+ "swf" -> SwfTraceFormat()
+ "wfformat" -> WfFormatTraceFormat()
+ "wtf" -> WtfTraceFormat()
+ else -> null
+ }
}
}
}
diff --git a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/azure/AzureTraceFormatTest.kt
index 4fe96a8e..40df36c6 100644
--- a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/azure/AzureTraceFormatTest.kt
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package org.opendc.trace.azure
+package formats.azure
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -33,6 +34,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.opendc.trace.TableColumn
import org.opendc.trace.TableReader
+import org.opendc.trace.azure.AzureTraceFormat
import org.opendc.trace.conv.TABLE_RESOURCES
import org.opendc.trace.conv.TABLE_RESOURCE_STATES
import org.opendc.trace.conv.resourceCpuCount
@@ -40,7 +42,6 @@ import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceMemCapacity
import org.opendc.trace.conv.resourceStateCpuUsagePct
import org.opendc.trace.conv.resourceStateTimestamp
-import org.opendc.trace.testkit.TableReaderTestKit
import java.nio.file.Paths
/**
@@ -52,27 +53,27 @@ class AzureTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@Test
fun testResources() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
val reader = format.newReader(path, TABLE_RESOURCES, null)
assertAll(
{ assertTrue(reader.nextRow()) },
@@ -86,7 +87,7 @@ class AzureTraceFormatTest {
@Test
fun testSmoke() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
val reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
assertAll(
@@ -107,7 +108,7 @@ class AzureTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
columns = format.getDetails(path, TABLE_RESOURCES).columns
reader = format.newReader(path, TABLE_RESOURCES, null)
@@ -122,7 +123,7 @@ class AzureTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace")
+ val path = Paths.get("src/test/resources/azure/trace")
columns = format.getDetails(path, TABLE_RESOURCE_STATES).columns
reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsExTraceFormatTest.kt
index 18c59fb8..0b604c18 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsExTraceFormatTest.kt
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package org.opendc.trace.bitbrains
+package formats.bitbrains
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -33,10 +34,10 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.opendc.trace.TableColumn
import org.opendc.trace.TableReader
+import org.opendc.trace.bitbrains.BitbrainsExTraceFormat
import org.opendc.trace.conv.TABLE_RESOURCE_STATES
import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateTimestamp
-import org.opendc.trace.testkit.TableReaderTestKit
import java.nio.file.Paths
/**
@@ -47,27 +48,27 @@ internal class BitbrainsExTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/vm.txt")
+ val path = Paths.get("src/test/resources/bitbrains/vm.txt")
assertEquals(listOf(TABLE_RESOURCE_STATES), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/vm.txt")
+ val path = Paths.get("src/test/resources/bitbrains/vm.txt")
assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/vm.txt")
+ val path = Paths.get("src/test/resources/bitbrains/vm.txt")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@Test
fun testSmoke() {
- val path = Paths.get("src/test/resources/vm.txt")
+ val path = Paths.get("src/test/resources/bitbrains/vm.txt")
val reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
assertAll(
@@ -87,7 +88,7 @@ internal class BitbrainsExTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/vm.txt")
+ val path = Paths.get("src/test/resources/bitbrains/vm.txt")
columns = format.getDetails(path, TABLE_RESOURCE_STATES).columns
reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsTraceFormatTest.kt
index 8ff13852..d8ffb335 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/bitbrains/BitbrainsTraceFormatTest.kt
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package org.opendc.trace.bitbrains
+package formats.bitbrains
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -34,12 +35,12 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.opendc.trace.TableColumn
import org.opendc.trace.TableReader
+import org.opendc.trace.bitbrains.BitbrainsTraceFormat
import org.opendc.trace.conv.TABLE_RESOURCES
import org.opendc.trace.conv.TABLE_RESOURCE_STATES
import org.opendc.trace.conv.resourceID
import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateTimestamp
-import org.opendc.trace.testkit.TableReaderTestKit
import java.nio.file.Paths
/**
@@ -50,27 +51,27 @@ class BitbrainsTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@Test
fun testResources() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
val reader = format.newReader(path, TABLE_RESOURCES, null)
assertAll(
@@ -84,7 +85,7 @@ class BitbrainsTraceFormatTest {
@Test
fun testSmoke() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
val reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
assertAll(
@@ -104,7 +105,7 @@ class BitbrainsTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
columns = format.getDetails(path, TABLE_RESOURCES).columns
reader = format.newReader(path, TABLE_RESOURCES, null)
@@ -119,7 +120,7 @@ class BitbrainsTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/bitbrains.csv")
+ val path = Paths.get("src/test/resources/bitbrains/bitbrains.csv")
columns = format.getDetails(path, TABLE_RESOURCE_STATES).columns
reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
diff --git a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/gwf/GwfTraceFormatTest.kt
index 9c97547a..cf098556 100644
--- a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/gwf/GwfTraceFormatTest.kt
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package org.opendc.trace.gwf
+package formats.gwf
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -39,7 +40,7 @@ import org.opendc.trace.conv.TASK_PARENTS
import org.opendc.trace.conv.TASK_RUNTIME
import org.opendc.trace.conv.TASK_SUBMIT_TIME
import org.opendc.trace.conv.TASK_WORKFLOW_ID
-import org.opendc.trace.testkit.TableReaderTestKit
+import org.opendc.trace.gwf.GwfTraceFormat
import java.nio.file.Paths
import java.time.Duration
import java.time.Instant
@@ -53,27 +54,27 @@ internal class GwfTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
assertEquals(listOf(TABLE_TASKS), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@Test
fun testTableReader() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
val reader = format.newReader(path, TABLE_TASKS, null)
assertAll(
@@ -88,7 +89,7 @@ internal class GwfTraceFormatTest {
@Test
fun testReadingRowWithDependencies() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
val reader = format.newReader(path, TABLE_TASKS, null)
// Move to row 7
@@ -113,7 +114,7 @@ internal class GwfTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI())
+ val path = Paths.get("src/test/resources/gwf/trace.gwf")
columns = format.getDetails(path, TABLE_TASKS).columns
reader = format.newReader(path, TABLE_TASKS, null)
diff --git a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/opendc/OdcVmTraceFormatTest.kt
index c9fa21c3..132b1d53 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/opendc/OdcVmTraceFormatTest.kt
@@ -20,8 +20,10 @@
* SOFTWARE.
*/
-package org.opendc.trace.opendc
+package formats.opendc
+import formats.wtf.TableReaderTestKit
+import formats.wtf.TableWriterTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertFalse
@@ -51,8 +53,7 @@ import org.opendc.trace.conv.resourceStartTime
import org.opendc.trace.conv.resourceStateCpuUsage
import org.opendc.trace.conv.resourceStateTimestamp
import org.opendc.trace.conv.resourceStopTime
-import org.opendc.trace.testkit.TableReaderTestKit
-import org.opendc.trace.testkit.TableWriterTestKit
+import org.opendc.trace.formats.opendc.OdcVmTraceFormat
import java.nio.file.Files
import java.nio.file.Paths
import java.time.Instant
@@ -66,28 +67,28 @@ internal class OdcVmTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES, TABLE_INTERFERENCE_GROUPS), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@ParameterizedTest
@ValueSource(strings = ["trace-v2.0", "trace-v2.1"])
fun testResources(name: String) {
- val path = Paths.get("src/test/resources/$name")
+ val path = Paths.get("src/test/resources/opendc/$name")
val reader = format.newReader(path, TABLE_RESOURCES, listOf(resourceID, resourceStartTime))
assertAll(
@@ -140,7 +141,7 @@ internal class OdcVmTraceFormatTest {
@ParameterizedTest
@ValueSource(strings = ["trace-v2.0", "trace-v2.1"])
fun testSmoke(name: String) {
- val path = Paths.get("src/test/resources/$name")
+ val path = Paths.get("src/test/resources/opendc/$name")
val reader =
format.newReader(
path,
@@ -187,7 +188,7 @@ internal class OdcVmTraceFormatTest {
@Test
fun testInterferenceGroups() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
val reader =
format.newReader(
path,
@@ -212,7 +213,7 @@ internal class OdcVmTraceFormatTest {
@Test
fun testInterferenceGroupsEmpty() {
- val path = Paths.get("src/test/resources/trace-v2.0")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.0")
val reader = format.newReader(path, TABLE_INTERFERENCE_GROUPS, listOf(INTERFERENCE_GROUP_MEMBERS))
assertFalse(reader.nextRow())
@@ -263,7 +264,7 @@ internal class OdcVmTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
columns = format.getDetails(path, TABLE_RESOURCES).columns
reader = format.newReader(path, TABLE_RESOURCES, null)
@@ -280,7 +281,7 @@ internal class OdcVmTraceFormatTest {
fun setUp() {
val path = Files.createTempDirectory("opendc")
- columns = format.getDetails(Paths.get("src/test/resources/trace-v2.1"), TABLE_RESOURCES).columns
+ columns = format.getDetails(Paths.get("src/test/resources/opendc/trace-v2.1"), TABLE_RESOURCES).columns
writer = format.newWriter(path, TABLE_RESOURCES)
}
}
@@ -293,7 +294,7 @@ internal class OdcVmTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
columns = format.getDetails(path, TABLE_RESOURCE_STATES).columns
reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
@@ -310,7 +311,7 @@ internal class OdcVmTraceFormatTest {
fun setUp() {
val path = Files.createTempDirectory("opendc")
- columns = format.getDetails(Paths.get("src/test/resources/trace-v2.1"), TABLE_RESOURCE_STATES).columns
+ columns = format.getDetails(Paths.get("src/test/resources/opendc/trace-v2.1"), TABLE_RESOURCE_STATES).columns
writer = format.newWriter(path, TABLE_RESOURCE_STATES)
}
}
@@ -323,7 +324,7 @@ internal class OdcVmTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace-v2.1")
+ val path = Paths.get("src/test/resources/opendc/trace-v2.1")
columns = format.getDetails(path, TABLE_INTERFERENCE_GROUPS).columns
reader = format.newReader(path, TABLE_INTERFERENCE_GROUPS, null)
@@ -340,7 +341,7 @@ internal class OdcVmTraceFormatTest {
fun setUp() {
val path = Files.createTempDirectory("opendc")
- columns = format.getDetails(Paths.get("src/test/resources/trace-v2.1"), TABLE_INTERFERENCE_GROUPS).columns
+ columns = format.getDetails(Paths.get("src/test/resources/opendc/trace-v2.1"), TABLE_INTERFERENCE_GROUPS).columns
writer = format.newWriter(path, TABLE_INTERFERENCE_GROUPS)
}
}
diff --git a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/swf/SwfTraceFormatTest.kt
index 436f2572..c4c4e24a 100644
--- a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/swf/SwfTraceFormatTest.kt
@@ -20,8 +20,9 @@
* SOFTWARE.
*/
-package org.opendc.trace.swf
+package formats.swf
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -36,7 +37,7 @@ import org.opendc.trace.TableReader
import org.opendc.trace.conv.TABLE_TASKS
import org.opendc.trace.conv.TASK_ALLOC_NCPUS
import org.opendc.trace.conv.TASK_ID
-import org.opendc.trace.testkit.TableReaderTestKit
+import org.opendc.trace.swf.SwfTraceFormat
import java.nio.file.Paths
/**
@@ -48,27 +49,27 @@ internal class SwfTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI())
+ val path = Paths.get("src/test/resources/swf/trace.swf")
assertEquals(listOf(TABLE_TASKS), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI())
+ val path = Paths.get("src/test/resources/swf/trace.swf")
assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI())
+ val path = Paths.get("src/test/resources/swf/trace.swf")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@Test
fun testReader() {
- val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI())
+ val path = Paths.get("src/test/resources/swf/trace.swf")
val reader = format.newReader(path, TABLE_TASKS, null)
assertAll(
@@ -91,7 +92,7 @@ internal class SwfTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI())
+ val path = Paths.get("src/test/resources/swf/trace.swf")
columns = format.getDetails(path, TABLE_TASKS).columns
reader = format.newReader(path, TABLE_TASKS, null)
diff --git a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTaskTableReaderTest.kt
index 618cdf7d..1701e566 100644
--- a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTaskTableReaderTest.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.wfformat
+package formats.wfformat
import com.fasterxml.jackson.core.JsonFactory
import com.fasterxml.jackson.core.JsonParseException
@@ -32,6 +32,7 @@ import org.junit.jupiter.api.assertDoesNotThrow
import org.junit.jupiter.api.assertThrows
import org.opendc.trace.conv.TASK_ID
import org.opendc.trace.conv.TASK_PARENTS
+import org.opendc.trace.wfformat.WfFormatTaskTableReader
/**
* Test suite for the [WfFormatTaskTableReader] class.
diff --git a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTraceFormatTest.kt
index 80a9d80e..94ed30d7 100644
--- a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wfformat/WfFormatTraceFormatTest.kt
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package org.opendc.trace.wfformat
+package formats.wfformat
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertEquals
@@ -39,6 +39,7 @@ import org.opendc.trace.conv.TASK_PARENTS
import org.opendc.trace.conv.TASK_RUNTIME
import org.opendc.trace.conv.TASK_WORKFLOW_ID
import org.opendc.trace.testkit.TableReaderTestKit
+import org.opendc.trace.wfformat.WfFormatTraceFormat
import java.nio.file.Paths
/**
@@ -50,20 +51,20 @@ class WfFormatTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
assertEquals(listOf(TABLE_TASKS), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@@ -73,7 +74,7 @@ class WfFormatTraceFormatTest {
*/
@Test
fun testTableReader() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
val reader = format.newReader(path, TABLE_TASKS, null)
assertAll(
@@ -100,7 +101,7 @@ class WfFormatTraceFormatTest {
*/
@Test
fun testTableReaderFull() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
val reader = format.newReader(path, TABLE_TASKS, null)
assertDoesNotThrow {
@@ -119,7 +120,7 @@ class WfFormatTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/trace.json")
+ val path = Paths.get("src/test/resources/wfformat/trace.json")
columns = format.getDetails(path, TABLE_TASKS).columns
reader = format.newReader(path, TABLE_TASKS, null)
diff --git a/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableReaderTestKit.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableReaderTestKit.kt
new file mode 100644
index 00000000..cb6db43f
--- /dev/null
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableReaderTestKit.kt
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package formats.wtf
+
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Assertions.assertFalse
+import org.junit.jupiter.api.Assertions.assertNotEquals
+import org.junit.jupiter.api.Assumptions.assumeTrue
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.assertAll
+import org.junit.jupiter.api.assertDoesNotThrow
+import org.junit.jupiter.api.assertThrows
+import org.opendc.trace.TableColumn
+import org.opendc.trace.TableColumnType
+import org.opendc.trace.TableReader
+
+/**
+ * A test suite for implementations of the [TableReader] interface.
+ */
+public abstract class TableReaderTestKit {
+ /**
+ * The [TableReader] instance to test.
+ */
+ public abstract val reader: TableReader
+
+ /**
+ * The columns of the table.
+ */
+ public abstract val columns: List<TableColumn>
+
+ @AfterEach
+ public fun tearDown() {
+ reader.close()
+ }
+
+ /**
+ * Test that we can resolve the columns of a table successfully.
+ */
+ @Test
+ public fun testResolve() {
+ assertAll(columns.map { column -> { assertNotEquals(-1, reader.resolve(column.name)) } })
+ }
+
+ /**
+ * Test that resolving an empty column name fails
+ */
+ @Test
+ public fun testResolveEmpty() {
+ assertEquals(-1, reader.resolve(""))
+ }
+
+ /**
+ * Test that reading non-existent columns fails.
+ */
+ @Test
+ public fun testReadNonExistentColumns() {
+ assumeTrue(reader.nextRow())
+ assertAll(
+ { assertThrows<IllegalArgumentException> { reader.isNull(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getBoolean(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getInt(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getLong(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getFloat(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getDouble(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getString(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getUUID(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getInstant(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getDuration(-1) } },
+ { assertThrows<IllegalArgumentException> { reader.getList(-1, Any::class.java) } },
+ { assertThrows<IllegalArgumentException> { reader.getSet(-1, Any::class.java) } },
+ { assertThrows<IllegalArgumentException> { reader.getMap(-1, Any::class.java, Any::class.java) } },
+ )
+ }
+
+ /**
+ * Test that ensures [TableReader.isNull] reports the correct value.
+ */
+ @Test
+ public fun testVerifyNullColumns() {
+ while (reader.nextRow()) {
+ assertAll(
+ columns.map { column ->
+ {
+ when (column.type) {
+ is TableColumnType.Boolean -> assertFalse(reader.isNull(column.name) && !reader.getBoolean(column.name))
+ is TableColumnType.Int -> assertFalse(reader.isNull(column.name) && reader.getInt(column.name) != 0)
+ is TableColumnType.Long -> assertFalse(reader.isNull(column.name) && reader.getLong(column.name) != 0L)
+ is TableColumnType.Float -> assertFalse(reader.isNull(column.name) && reader.getFloat(column.name) != 0f)
+ is TableColumnType.Double -> assertFalse(reader.isNull(column.name) && reader.getDouble(column.name) != 0.0)
+ is TableColumnType.String -> assertFalse(reader.isNull(column.name) && reader.getString(column.name) != null)
+ is TableColumnType.UUID -> assertFalse(reader.isNull(column.name) && reader.getUUID(column.name) != null)
+ is TableColumnType.Instant -> assertFalse(reader.isNull(column.name) && reader.getInstant(column.name) != null)
+ is TableColumnType.Duration ->
+ assertFalse(
+ reader.isNull(column.name) && reader.getDuration(column.name) != null,
+ )
+ is TableColumnType.List ->
+ assertFalse(
+ reader.isNull(column.name) && reader.getList(column.name, Any::class.java) != null,
+ )
+ is TableColumnType.Set ->
+ assertFalse(
+ reader.isNull(column.name) && reader.getSet(column.name, Any::class.java) != null,
+ )
+ is TableColumnType.Map ->
+ assertFalse(
+ reader.isNull(column.name) && reader.getMap(column.name, Any::class.java, Any::class.java) != null,
+ )
+ }
+ }
+ },
+ )
+ }
+ }
+
+ /**
+ * Test that we can read the entire table without any issue.
+ */
+ @Test
+ public fun testReadFully() {
+ assertDoesNotThrow {
+ while (reader.nextRow()) {
+ assertAll(columns.map { column -> { assertDoesNotThrow { reader.get(column) } } })
+ }
+ reader.close()
+ }
+
+ assertFalse(reader.nextRow()) { "Reader does not reset" }
+ }
+
+ /**
+ * Test that the reader throws an exception when the columns are read without a call to [TableReader.nextRow]
+ */
+ @Test
+ public fun testReadWithoutNextRow() {
+ assertAll(columns.map { column -> { assertThrows<IllegalStateException> { reader.get(column) } } })
+ }
+
+ /**
+ * Test that the reader throws an exception when the columns are read after the [TableReader] is finished.
+ */
+ @Test
+ public fun testReadAfterFinish() {
+ @Suppress("ControlFlowWithEmptyBody")
+ while (reader.nextRow()) {}
+
+ testReadWithoutNextRow()
+ }
+
+ /**
+ * Helper method to map a [TableColumn] to a read.
+ */
+ private fun TableReader.get(column: TableColumn): Any? {
+ return when (column.type) {
+ is TableColumnType.Boolean -> getBoolean(column.name)
+ is TableColumnType.Int -> getInt(column.name)
+ is TableColumnType.Long -> getLong(column.name)
+ is TableColumnType.Float -> getFloat(column.name)
+ is TableColumnType.Double -> getDouble(column.name)
+ is TableColumnType.String -> getString(column.name)
+ is TableColumnType.UUID -> getUUID(column.name)
+ is TableColumnType.Instant -> getInstant(column.name)
+ is TableColumnType.Duration -> getDuration(column.name)
+ is TableColumnType.List -> getList(column.name, Any::class.java)
+ is TableColumnType.Set -> getSet(column.name, Any::class.java)
+ is TableColumnType.Map -> getMap(column.name, Any::class.java, Any::class.java)
+ }
+ }
+}
diff --git a/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableWriterTestKit.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableWriterTestKit.kt
new file mode 100644
index 00000000..1c819fff
--- /dev/null
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/TableWriterTestKit.kt
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package formats.wtf
+
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Assertions.assertNotEquals
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.assertAll
+import org.junit.jupiter.api.assertThrows
+import org.opendc.trace.TableColumn
+import org.opendc.trace.TableColumnType
+import org.opendc.trace.TableWriter
+import java.time.Duration
+import java.time.Instant
+import java.util.UUID
+
+/**
+ * A test suite for implementations of the [TableWriter] interface.
+ */
+public abstract class TableWriterTestKit {
+ /**
+ * The [TableWriter] instance to test.
+ */
+ public abstract val writer: TableWriter
+
+ /**
+ * The columns of the table.
+ */
+ public abstract val columns: List<TableColumn>
+
+ @AfterEach
+ public fun tearDown() {
+ writer.close()
+ }
+
+ /**
+ * Test that we can resolve the columns of a table successfully.
+ */
+ @Test
+ public fun testResolve() {
+ assertAll(columns.map { column -> { assertNotEquals(-1, writer.resolve(column.name)) } })
+ }
+
+ /**
+ * Test that resolving an empty column name fails
+ */
+ @Test
+ public fun testResolveEmpty() {
+ assertEquals(-1, writer.resolve(""))
+ }
+
+ /**
+ * Test that writing non-existent columns fails.
+ */
+ @Test
+ public fun testWriteNonExistentColumns() {
+ writer.startRow()
+ assertAll(
+ { assertThrows<IllegalArgumentException> { writer.setBoolean(-1, false) } },
+ { assertThrows<IllegalArgumentException> { writer.setInt(-1, 1) } },
+ { assertThrows<IllegalArgumentException> { writer.setLong(-1, 1) } },
+ { assertThrows<IllegalArgumentException> { writer.setFloat(-1, 1f) } },
+ { assertThrows<IllegalArgumentException> { writer.setDouble(-1, 1.0) } },
+ { assertThrows<IllegalArgumentException> { writer.setString(-1, "test") } },
+ { assertThrows<IllegalArgumentException> { writer.setUUID(-1, UUID.randomUUID()) } },
+ { assertThrows<IllegalArgumentException> { writer.setInstant(-1, Instant.now()) } },
+ { assertThrows<IllegalArgumentException> { writer.setDuration(-1, Duration.ofMinutes(5)) } },
+ { assertThrows<IllegalArgumentException> { writer.setList(-1, listOf("test")) } },
+ { assertThrows<IllegalArgumentException> { writer.setSet(-1, setOf("test")) } },
+ { assertThrows<IllegalArgumentException> { writer.setMap(-1, mapOf("test" to "test")) } },
+ )
+ }
+
+ /**
+ * Test that writing columns without a row fails.
+ */
+ @Test
+ public fun testWriteWithoutRow() {
+ assertAll(
+ columns.map { column ->
+ {
+ assertThrows<IllegalStateException> {
+ when (column.type) {
+ is TableColumnType.Boolean -> writer.setBoolean(column.name, true)
+ is TableColumnType.Int -> writer.setInt(column.name, 21)
+ is TableColumnType.Long -> writer.setLong(column.name, 21)
+ is TableColumnType.Float -> writer.setFloat(column.name, 42f)
+ is TableColumnType.Double -> writer.setDouble(column.name, 42.0)
+ is TableColumnType.String -> writer.setString(column.name, "test")
+ is TableColumnType.UUID -> writer.setUUID(column.name, UUID.randomUUID())
+ is TableColumnType.Instant -> writer.setInstant(column.name, Instant.now())
+ is TableColumnType.Duration -> writer.setDuration(column.name, Duration.ofMinutes(5))
+ is TableColumnType.List -> writer.setList(column.name, emptyList<String>())
+ is TableColumnType.Set -> writer.setSet(column.name, emptySet<String>())
+ is TableColumnType.Map -> writer.setMap(column.name, emptyMap<String, String>())
+ }
+ }
+ }
+ },
+ )
+ }
+
+ /**
+ * Test to verify we cannot end a row without starting it.
+ */
+ @Test
+ public fun testEndRowWithoutStart() {
+ assertThrows<IllegalStateException> { writer.endRow() }
+ }
+}
diff --git a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/WtfTraceFormatTest.kt
index ad49cce0..d218fbf3 100644
--- a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt
+++ b/opendc-trace/opendc-trace-api/src/test/kotlin/formats/wtf/WtfTraceFormatTest.kt
@@ -22,6 +22,7 @@
package org.opendc.trace.wtf
+import formats.wtf.TableReaderTestKit
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertDoesNotThrow
import org.junit.jupiter.api.Assertions.assertEquals
@@ -39,7 +40,6 @@ import org.opendc.trace.conv.TASK_PARENTS
import org.opendc.trace.conv.TASK_RUNTIME
import org.opendc.trace.conv.TASK_SUBMIT_TIME
import org.opendc.trace.conv.TASK_WORKFLOW_ID
-import org.opendc.trace.testkit.TableReaderTestKit
import java.nio.file.Paths
import java.time.Duration
import java.time.Instant
@@ -53,19 +53,19 @@ class WtfTraceFormatTest {
@Test
fun testTables() {
- val path = Paths.get("src/test/resources/wtf-trace")
+ val path = Paths.get("src/test/resources/wtf/schema-1.0")
assertEquals(listOf(TABLE_TASKS), format.getTables(path))
}
@Test
fun testTableExists() {
- val path = Paths.get("src/test/resources/wtf-trace")
+ val path = Paths.get("src/test/resources/wtf/wtf-trace")
assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) }
}
@Test
fun testTableDoesNotExist() {
- val path = Paths.get("src/test/resources/wtf-trace")
+ val path = Paths.get("src/test/resources/wtf/wtf-trace")
assertThrows<IllegalArgumentException> { format.getDetails(path, "test") }
}
@@ -75,7 +75,7 @@ class WtfTraceFormatTest {
*/
@Test
fun testTableReader() {
- val path = Paths.get("src/test/resources/wtf-trace")
+ val path = Paths.get("src/test/resources/wtf/wtf-trace")
val reader = format.newReader(path, TABLE_TASKS, listOf(TASK_ID, TASK_WORKFLOW_ID, TASK_SUBMIT_TIME, TASK_RUNTIME, TASK_PARENTS))
assertAll(
@@ -117,7 +117,7 @@ class WtfTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/wtf-trace")
+ val path = Paths.get("src/test/resources/wtf/wtf-trace")
columns = format.getDetails(path, TABLE_TASKS).columns
reader = format.newReader(path, TABLE_TASKS, null)
@@ -132,7 +132,7 @@ class WtfTraceFormatTest {
@BeforeEach
fun setUp() {
- val path = Paths.get("src/test/resources/shell")
+ val path = Paths.get("src/test/resources/wtf/shell")
columns = format.getDetails(path, TABLE_TASKS).columns
reader = format.newReader(path, TABLE_TASKS, null)
diff --git a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz b/opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz
index 592c7316..592c7316 100644
--- a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz
+++ b/opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv.gz
Binary files differ
diff --git a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv.gz b/opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vmtable/vmtable.csv.gz
index 0adc6b7e..0adc6b7e 100644
--- a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv.gz
+++ b/opendc-trace/opendc-trace-api/src/test/resources/azure/trace/vmtable/vmtable.csv.gz
Binary files differ
diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv b/opendc-trace/opendc-trace-api/src/test/resources/bitbrains/bitbrains.csv
index f5e300e8..f5e300e8 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv
+++ b/opendc-trace/opendc-trace-api/src/test/resources/bitbrains/bitbrains.csv
diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt b/opendc-trace/opendc-trace-api/src/test/resources/bitbrains/vm.txt
index 28bebb0c..28bebb0c 100644
--- a/opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt
+++ b/opendc-trace/opendc-trace-api/src/test/resources/bitbrains/vm.txt
diff --git a/opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf b/opendc-trace/opendc-trace-api/src/test/resources/gwf/trace.gwf
index 2f99616d..2f99616d 100644
--- a/opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf
+++ b/opendc-trace/opendc-trace-api/src/test/resources/gwf/trace.gwf
diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/meta.parquet
index d6ff09d8..d6ff09d8 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/meta.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/trace.parquet
index 5b6fa6b7..5b6fa6b7 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.0/trace.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/interference-model.json b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/interference-model.json
index 6a0616d9..6a0616d9 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/interference-model.json
+++ b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/interference-model.json
diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/meta.parquet
index d8184945..d8184945 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/meta.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/trace.parquet
index 00ab5835..00ab5835 100644
--- a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/opendc/trace-v2.1/trace.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-swf/src/test/resources/trace.swf b/opendc-trace/opendc-trace-api/src/test/resources/swf/trace.swf
index c3ecf890..c3ecf890 100644
--- a/opendc-trace/opendc-trace-swf/src/test/resources/trace.swf
+++ b/opendc-trace/opendc-trace-api/src/test/resources/swf/trace.swf
diff --git a/opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json b/opendc-trace/opendc-trace-api/src/test/resources/wfformat/trace.json
index d21f024d..d21f024d 100644
--- a/opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json
+++ b/opendc-trace/opendc-trace-api/src/test/resources/wfformat/trace.json
diff --git a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/tasks/schema-1.0/part.0.parquet b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/tasks/schema-1.0/part.0.parquet
index 31256990..31256990 100755
--- a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/tasks/schema-1.0/part.0.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/tasks/schema-1.0/part.0.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/workflows/schema-1.0/part.0.parquet b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workflows/schema-1.0/part.0.parquet
index 872469d5..872469d5 100755
--- a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/workflows/schema-1.0/part.0.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workflows/schema-1.0/part.0.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/workload/schema-1.0/generic_information.json b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workload/schema-1.0/generic_information.json
index 5949ab59..5949ab59 100755
--- a/opendc-trace/opendc-trace-wtf/src/test/resources/shell/workload/schema-1.0/generic_information.json
+++ b/opendc-trace/opendc-trace-api/src/test/resources/wtf/shell/workload/schema-1.0/generic_information.json
diff --git a/opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet b/opendc-trace/opendc-trace-api/src/test/resources/wtf/wtf-trace/tasks/schema-1.0/part.0.parquet
index d2044038..d2044038 100644
--- a/opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet
+++ b/opendc-trace/opendc-trace-api/src/test/resources/wtf/wtf-trace/tasks/schema-1.0/part.0.parquet
Binary files differ
diff --git a/opendc-trace/opendc-trace-azure/build.gradle.kts b/opendc-trace/opendc-trace-azure/build.gradle.kts
deleted file mode 100644
index 21b8b439..00000000
--- a/opendc-trace/opendc-trace-azure/build.gradle.kts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for Azure VM traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
- `benchmark-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
- implementation(libs.jackson.dataformat.csv)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
-}
diff --git a/opendc-trace/opendc-trace-azure/src/jmh/kotlin/org/opendc/trace/azure/AzureTraceBenchmarks.kt b/opendc-trace/opendc-trace-azure/src/jmh/kotlin/org/opendc/trace/azure/AzureTraceBenchmarks.kt
deleted file mode 100644
index bb3c2450..00000000
--- a/opendc-trace/opendc-trace-azure/src/jmh/kotlin/org/opendc/trace/azure/AzureTraceBenchmarks.kt
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2022 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package org.opendc.trace.azure
-
-import org.opendc.trace.conv.TABLE_RESOURCES
-import org.opendc.trace.conv.TABLE_RESOURCE_STATES
-import org.opendc.trace.conv.resourceID
-import org.opendc.trace.spi.TraceFormat
-import org.openjdk.jmh.annotations.Benchmark
-import org.openjdk.jmh.annotations.Fork
-import org.openjdk.jmh.annotations.Measurement
-import org.openjdk.jmh.annotations.Scope
-import org.openjdk.jmh.annotations.Setup
-import org.openjdk.jmh.annotations.State
-import org.openjdk.jmh.annotations.Warmup
-import org.openjdk.jmh.infra.Blackhole
-import java.nio.file.Path
-import java.util.concurrent.TimeUnit
-
-/**
- * Benchmarks for parsing traces in the Azure VM format.
- */
-@State(Scope.Thread)
-@Fork(1)
-@Warmup(iterations = 2, time = 1, timeUnit = TimeUnit.SECONDS)
-@Measurement(iterations = 5, time = 3, timeUnit = TimeUnit.SECONDS)
-class AzureTraceBenchmarks {
- private lateinit var path: Path
- private lateinit var format: TraceFormat
-
- @Setup
- fun setUp() {
- path = Path.of("src/test/resources/trace")
- format = AzureTraceFormat()
- }
-
- @Benchmark
- fun benchmarkResourcesReader(bh: Blackhole) {
- val reader = format.newReader(path, TABLE_RESOURCES, null)
- try {
- val idColumn = reader.resolve(resourceID)
- while (reader.nextRow()) {
- bh.consume(reader.getString(idColumn))
- }
- } finally {
- reader.close()
- }
- }
-
- @Benchmark
- fun benchmarkResourceStatesReader(bh: Blackhole) {
- val reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
- try {
- val idColumn = reader.resolve(resourceID)
- while (reader.nextRow()) {
- bh.consume(reader.getString(idColumn))
- }
- } finally {
- reader.close()
- }
- }
-}
diff --git a/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index 08e75529..00000000
--- a/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.azure.AzureTraceFormat
diff --git a/opendc-trace/opendc-trace-bitbrains/build.gradle.kts b/opendc-trace/opendc-trace-bitbrains/build.gradle.kts
deleted file mode 100644
index 6ca40d3d..00000000
--- a/opendc-trace/opendc-trace-bitbrains/build.gradle.kts
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for GWF traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
- implementation(libs.jackson.dataformat.csv)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
-}
diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index fd6a2180..00000000
--- a/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1,2 +0,0 @@
-org.opendc.trace.bitbrains.BitbrainsTraceFormat
-org.opendc.trace.bitbrains.BitbrainsExTraceFormat
diff --git a/opendc-trace/opendc-trace-calcite/build.gradle.kts b/opendc-trace/opendc-trace-calcite/build.gradle.kts
index 848e00da..433c2a35 100644
--- a/opendc-trace/opendc-trace-calcite/build.gradle.kts
+++ b/opendc-trace/opendc-trace-calcite/build.gradle.kts
@@ -32,6 +32,5 @@ dependencies {
api(libs.calcite.core)
- testRuntimeOnly(projects.opendcTrace.opendcTraceOpendc)
testRuntimeOnly(libs.slf4j.simple)
}
diff --git a/opendc-trace/opendc-trace-gwf/build.gradle.kts b/opendc-trace/opendc-trace-gwf/build.gradle.kts
deleted file mode 100644
index 4d0bd796..00000000
--- a/opendc-trace/opendc-trace-gwf/build.gradle.kts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for GWF traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
-
- implementation(libs.jackson.dataformat.csv)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
-}
diff --git a/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index 99a874c8..00000000
--- a/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.gwf.GwfTraceFormat
diff --git a/opendc-trace/opendc-trace-opendc/build.gradle.kts b/opendc-trace/opendc-trace-opendc/build.gradle.kts
deleted file mode 100644
index d9ed15f8..00000000
--- a/opendc-trace/opendc-trace-opendc/build.gradle.kts
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for OpenDC-specific trace formats"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
- `benchmark-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
-
- implementation(projects.opendcTrace.opendcTraceParquet)
- implementation(libs.jackson.core)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
- testRuntimeOnly(libs.slf4j.simple)
-}
diff --git a/opendc-trace/opendc-trace-opendc/src/jmh/kotlin/org/opendc/trace/opendc/OdcVmTraceBenchmarks.kt b/opendc-trace/opendc-trace-opendc/src/jmh/kotlin/org/opendc/trace/opendc/OdcVmTraceBenchmarks.kt
deleted file mode 100644
index e179e261..00000000
--- a/opendc-trace/opendc-trace-opendc/src/jmh/kotlin/org/opendc/trace/opendc/OdcVmTraceBenchmarks.kt
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2022 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package org.opendc.trace.opendc
-
-import org.opendc.trace.conv.INTERFERENCE_GROUP_SCORE
-import org.opendc.trace.conv.TABLE_INTERFERENCE_GROUPS
-import org.opendc.trace.conv.TABLE_RESOURCES
-import org.opendc.trace.conv.TABLE_RESOURCE_STATES
-import org.opendc.trace.conv.resourceID
-import org.opendc.trace.spi.TraceFormat
-import org.openjdk.jmh.annotations.Benchmark
-import org.openjdk.jmh.annotations.Fork
-import org.openjdk.jmh.annotations.Measurement
-import org.openjdk.jmh.annotations.Scope
-import org.openjdk.jmh.annotations.Setup
-import org.openjdk.jmh.annotations.State
-import org.openjdk.jmh.annotations.Warmup
-import org.openjdk.jmh.infra.Blackhole
-import java.nio.file.Path
-import java.util.concurrent.TimeUnit
-
-/**
- * Benchmarks for parsing traces in the OpenDC vm format.
- */
-@State(Scope.Thread)
-@Fork(1)
-@Warmup(iterations = 2, time = 1, timeUnit = TimeUnit.SECONDS)
-@Measurement(iterations = 5, time = 3, timeUnit = TimeUnit.SECONDS)
-class OdcVmTraceBenchmarks {
- private lateinit var path: Path
- private lateinit var format: TraceFormat
-
- @Setup
- fun setUp() {
- path = Path.of("../../opendc-experiments/opendc-experiments-capelin/src/test/resources/trace/bitbrains-small")
- format = OdcVmTraceFormat()
- }
-
- @Benchmark
- fun benchmarkResourcesReader(bh: Blackhole) {
- val reader = format.newReader(path, TABLE_RESOURCES, null)
- try {
- val idColumn = reader.resolve(resourceID)
- while (reader.nextRow()) {
- bh.consume(reader.getString(idColumn))
- }
- } finally {
- reader.close()
- }
- }
-
- @Benchmark
- fun benchmarkResourceStatesReader(bh: Blackhole) {
- val reader = format.newReader(path, TABLE_RESOURCE_STATES, null)
- try {
- val idColumn = reader.resolve(resourceID)
- while (reader.nextRow()) {
- bh.consume(reader.getString(idColumn))
- }
- } finally {
- reader.close()
- }
- }
-
- @Benchmark
- fun benchmarkInterferenceGroupReader(bh: Blackhole) {
- val reader = format.newReader(path, TABLE_INTERFERENCE_GROUPS, null)
- try {
- val scoreColumn = reader.resolve(INTERFERENCE_GROUP_SCORE)
- while (reader.nextRow()) {
- bh.consume(reader.getDouble(scoreColumn))
- }
- } finally {
- reader.close()
- }
- }
-}
diff --git a/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index 94094af4..00000000
--- a/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.opendc.OdcVmTraceFormat
diff --git a/opendc-trace/opendc-trace-swf/build.gradle.kts b/opendc-trace/opendc-trace-swf/build.gradle.kts
deleted file mode 100644
index 2798cdb1..00000000
--- a/opendc-trace/opendc-trace-swf/build.gradle.kts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for Standard Workload Format (SWF) traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
-}
diff --git a/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index 6c6b0eb2..00000000
--- a/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.swf.SwfTraceFormat
diff --git a/opendc-trace/opendc-trace-tools/build.gradle.kts b/opendc-trace/opendc-trace-tools/build.gradle.kts
index 002ab8cc..654d37f7 100644
--- a/opendc-trace/opendc-trace-tools/build.gradle.kts
+++ b/opendc-trace/opendc-trace-tools/build.gradle.kts
@@ -39,13 +39,6 @@ dependencies {
implementation(libs.clikt)
implementation(libs.jline)
- runtimeOnly(projects.opendcTrace.opendcTraceOpendc)
- runtimeOnly(projects.opendcTrace.opendcTraceBitbrains)
- runtimeOnly(projects.opendcTrace.opendcTraceAzure)
- runtimeOnly(projects.opendcTrace.opendcTraceGwf)
- runtimeOnly(projects.opendcTrace.opendcTraceSwf)
- runtimeOnly(projects.opendcTrace.opendcTraceWfformat)
- runtimeOnly(projects.opendcTrace.opendcTraceWtf)
runtimeOnly(libs.log4j.core)
runtimeOnly(libs.log4j.slf4j)
}
diff --git a/opendc-trace/opendc-trace-wfformat/build.gradle.kts b/opendc-trace/opendc-trace-wfformat/build.gradle.kts
deleted file mode 100644
index 57313a73..00000000
--- a/opendc-trace/opendc-trace-wfformat/build.gradle.kts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for WfCommons workload traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
-
- implementation(libs.jackson.core)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
-}
diff --git a/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index ee3aa2f6..00000000
--- a/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.wfformat.WfFormatTraceFormat
diff --git a/opendc-trace/opendc-trace-wtf/build.gradle.kts b/opendc-trace/opendc-trace-wtf/build.gradle.kts
deleted file mode 100644
index a3119e5e..00000000
--- a/opendc-trace/opendc-trace-wtf/build.gradle.kts
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-description = "Support for Workflow Trace Format (WTF) traces in OpenDC"
-
-// Build configuration
-plugins {
- `kotlin-library-conventions`
-}
-
-dependencies {
- api(projects.opendcTrace.opendcTraceApi)
-
- implementation(projects.opendcTrace.opendcTraceParquet)
-
- testImplementation(projects.opendcTrace.opendcTraceTestkit)
- testRuntimeOnly(libs.slf4j.simple)
-}
diff --git a/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
deleted file mode 100644
index 32da52ff..00000000
--- a/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat
+++ /dev/null
@@ -1 +0,0 @@
-org.opendc.trace.wtf.WtfTraceFormat
diff --git a/opendc-web/opendc-web-runner/build.gradle.kts b/opendc-web/opendc-web-runner/build.gradle.kts
index 38492929..fcf9a89a 100644
--- a/opendc-web/opendc-web-runner/build.gradle.kts
+++ b/opendc-web/opendc-web-runner/build.gradle.kts
@@ -57,12 +57,9 @@ dependencies {
implementation(project(mapOf("path" to ":opendc-experiments:opendc-experiments-base")))
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology")))
implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-telemetry")))
- runtimeOnly(projects.opendcTrace.opendcTraceOpendc)
- runtimeOnly(projects.opendcTrace.opendcTraceBitbrains)
cliImplementation(libs.clikt)
- cliRuntimeOnly(projects.opendcTrace.opendcTraceOpendc)
cliRuntimeOnly(libs.log4j.core)
cliRuntimeOnly(libs.log4j.slf4j)
cliRuntimeOnly(libs.sentry.log4j2)
diff --git a/opendc-workflow/opendc-workflow-service/build.gradle.kts b/opendc-workflow/opendc-workflow-service/build.gradle.kts
index fdfbf82a..37e105b9 100644
--- a/opendc-workflow/opendc-workflow-service/build.gradle.kts
+++ b/opendc-workflow/opendc-workflow-service/build.gradle.kts
@@ -39,7 +39,6 @@ dependencies {
testImplementation(projects.opendcSimulator.opendcSimulatorCore)
testImplementation(projects.opendcExperiments.opendcExperimentsWorkflow)
testImplementation(projects.opendcTrace.opendcTraceApi)
- testRuntimeOnly(projects.opendcTrace.opendcTraceGwf)
testRuntimeOnly(libs.log4j.core)
testRuntimeOnly(libs.log4j.slf4j)
}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 411bcab1..8553ad9f 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -54,16 +54,9 @@ include(":opendc-simulator:opendc-simulator-power")
include(":opendc-simulator:opendc-simulator-network")
include(":opendc-simulator:opendc-simulator-compute")
include(":opendc-trace:opendc-trace-api")
-include(":opendc-trace:opendc-trace-testkit")
-include(":opendc-trace:opendc-trace-gwf")
-include(":opendc-trace:opendc-trace-swf")
-include(":opendc-trace:opendc-trace-wtf")
-include(":opendc-trace:opendc-trace-wfformat")
-include(":opendc-trace:opendc-trace-bitbrains")
-include(":opendc-trace:opendc-trace-azure")
-include(":opendc-trace:opendc-trace-opendc")
-include(":opendc-trace:opendc-trace-parquet")
include(":opendc-trace:opendc-trace-calcite")
+include(":opendc-trace:opendc-trace-parquet")
+include(":opendc-trace:opendc-trace-testkit")
include(":opendc-trace:opendc-trace-tools")
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")