diff --git a/procedural/constraints/build.gradle b/procedural/constraints/build.gradle
index 94dd9aaa1a..a91caa162d 100644
--- a/procedural/constraints/build.gradle
+++ b/procedural/constraints/build.gradle
@@ -34,6 +34,9 @@ tasks.named('test') {
kotlin {
jvmToolchain(21)
+ compilerOptions {
+ freeCompilerArgs.add("-Xjvm-default=all")
+ }
}
java {
diff --git a/procedural/constraints/src/test/java/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.java b/procedural/constraints/src/test/java/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.java
new file mode 100644
index 0000000000..430457a978
--- /dev/null
+++ b/procedural/constraints/src/test/java/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.java
@@ -0,0 +1,42 @@
+package gov.nasa.ammos.aerie.procedural.constraints;
+
+import gov.nasa.ammos.aerie.procedural.timeline.Interval;
+import gov.nasa.ammos.aerie.procedural.timeline.collections.Directives;
+import gov.nasa.ammos.aerie.procedural.timeline.plan.Plan;
+import gov.nasa.jpl.aerie.merlin.protocol.types.Duration;
+import gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue;
+import kotlin.NotImplementedError;
+import kotlin.jvm.functions.Function1;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.time.Instant;
+
+public class NotImplementedPlan implements Plan {
+ @NotNull
+ @Override
+ public Interval totalBounds() {
+ throw new NotImplementedError();
+ }
+
+ @NotNull
+ @Override
+ public Duration toRelative(@NotNull final Instant abs) {
+ throw new NotImplementedError();
+ }
+
+ @NotNull
+ @Override
+ public Instant toAbsolute(@NotNull final Duration rel) {
+ throw new NotImplementedError();
+ }
+
+ @NotNull
+ @Override
+ public Directives directives(
+ @Nullable final String type,
+ @NotNull final Function1 super SerializedValue, ? extends A> deserializer)
+ {
+ throw new NotImplementedError();
+ }
+}
diff --git a/procedural/constraints/src/test/kotlin/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.kt b/procedural/constraints/src/test/kotlin/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.kt
deleted file mode 100644
index 786cf5f370..0000000000
--- a/procedural/constraints/src/test/kotlin/gov/nasa/ammos/aerie/procedural/constraints/NotImplementedPlan.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package gov.nasa.ammos.aerie.procedural.constraints
-
-import gov.nasa.ammos.aerie.procedural.timeline.Interval
-import gov.nasa.ammos.aerie.procedural.timeline.collections.Directives
-import gov.nasa.ammos.aerie.procedural.timeline.plan.Plan
-import gov.nasa.jpl.aerie.merlin.protocol.types.Duration
-import gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue
-import java.time.Instant
-
-open class NotImplementedPlan: Plan {
- override fun totalBounds(): Interval = TODO()
- override fun toRelative(abs: Instant): Duration = TODO()
- override fun toAbsolute(rel: Duration): Instant = TODO()
- override fun directives(type: String?, deserializer: (SerializedValue) -> A): Directives = TODO()
-}
diff --git a/procedural/scheduling/build.gradle b/procedural/scheduling/build.gradle
index cf3b689f20..7c2d8766d4 100644
--- a/procedural/scheduling/build.gradle
+++ b/procedural/scheduling/build.gradle
@@ -32,6 +32,9 @@ tasks.named('test') {
kotlin {
jvmToolchain(21)
+ compilerOptions {
+ freeCompilerArgs.add("-Xjvm-default=all")
+ }
}
java {
diff --git a/procedural/timeline/build.gradle b/procedural/timeline/build.gradle
index 1d9bc0f448..81eafb8dfc 100644
--- a/procedural/timeline/build.gradle
+++ b/procedural/timeline/build.gradle
@@ -33,6 +33,9 @@ tasks.named('test') {
kotlin {
jvmToolchain(21)
+ compilerOptions {
+ freeCompilerArgs.add("-Xjvm-default=all")
+ }
}
java {