From ddd11756e8ede802c16bbaf56f562e8f9735b8d4 Mon Sep 17 00:00:00 2001 From: Drew Carlson Date: Mon, 21 Mar 2022 00:25:03 -0700 Subject: [PATCH] Add binary compatibility validator --- build.gradle.kts | 7 + kjob-api/api/kjob-api.api | 27 +++ kjob-core/api/kjob-core.api | 409 ++++++++++++++++++++++++++++++++++ kjob-inmem/api/kjob-inmem.api | 17 ++ kjob-jdbi/api/kjob-jdbi.api | 29 +++ kjob-kron/api/kjob-kron.api | 23 ++ kjob-mongo/api/kjob-mongo.api | 28 +++ 7 files changed, 540 insertions(+) create mode 100644 kjob-api/api/kjob-api.api create mode 100644 kjob-core/api/kjob-core.api create mode 100644 kjob-inmem/api/kjob-inmem.api create mode 100644 kjob-jdbi/api/kjob-jdbi.api create mode 100644 kjob-kron/api/kjob-kron.api create mode 100644 kjob-mongo/api/kjob-mongo.api diff --git a/build.gradle.kts b/build.gradle.kts index 6f6dca1..891215e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,6 +3,7 @@ plugins { alias(libs.plugins.jvm) alias(libs.plugins.testLogger) alias(libs.plugins.dokka) + alias(libs.plugins.binaryCompat) apply false alias(libs.plugins.serialization) apply false } @@ -85,6 +86,7 @@ project(":kjob-example") { project(":kjob-mongo") { apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(project(":kjob-core")) implementation(rootProject.libs.mongodbReactive) @@ -103,6 +105,7 @@ project(":kjob-mongo") { project(":kjob-jdbi") { apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(project(":kjob-core")) implementation(rootProject.libs.serialization.core) @@ -122,6 +125,7 @@ project(":kjob-jdbi") { project(":kjob-inmem") { apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(project(":kjob-core")) implementation(rootProject.libs.coroutines.core) @@ -137,6 +141,7 @@ project(":kjob-inmem") { project(":kjob-kron") { apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(project(":kjob-core")) implementation(rootProject.libs.coroutines.core) @@ -157,6 +162,7 @@ project(":kjob-kron") { project(":kjob-api") { apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(project(":kjob-core")) implementation(project(":kjob-mongo")) @@ -188,6 +194,7 @@ project(":kjob-api") { project(":kjob-core") { apply(plugin = "kotlinx-serialization") apply(from = "../gradle/publishing.gradle.kts") + apply(plugin = "binary-compatibility-validator") dependencies { implementation(rootProject.libs.coroutines.core) implementation(rootProject.libs.serialization.core) diff --git a/kjob-api/api/kjob-api.api b/kjob-api/api/kjob-api.api new file mode 100644 index 0000000..1a25ac8 --- /dev/null +++ b/kjob-api/api/kjob-api.api @@ -0,0 +1,27 @@ +public final class kjob/api/KJobApiKtorKt { + public static final fun installKJobApi (Lio/ktor/server/application/Application;Ljava/util/List;Lio/ktor/server/routing/Route;Z)V + public static final fun installKJobApi (Lio/ktor/server/application/Application;Lkjob/core/KJob;Lio/ktor/server/routing/Route;Z)V + public static synthetic fun installKJobApi$default (Lio/ktor/server/application/Application;Ljava/util/List;Lio/ktor/server/routing/Route;ZILjava/lang/Object;)V + public static synthetic fun installKJobApi$default (Lio/ktor/server/application/Application;Lkjob/core/KJob;Lio/ktor/server/routing/Route;ZILjava/lang/Object;)V +} + +public final class kjob/api/KJobApiModule : kjob/core/extension/ExtensionModule { + public static final field INSTANCE Lkjob/api/KJobApiModule; + public fun create (Lkotlin/jvm/functions/Function1;Lkjob/core/BaseKJob$Configuration;)Lkotlin/jvm/functions/Function1; + public synthetic fun create (Lkotlin/jvm/functions/Function1;Lkjob/core/KJob$Configuration;)Lkotlin/jvm/functions/Function1; + public fun getId ()Lkjob/core/extension/ExtensionId; +} + +public final class kjob/api/KjobApiEx : kjob/core/extension/BaseExtension { + public fun (Lkjob/api/KjobApiEx$Configuration;Lkjob/core/BaseKJob$Configuration;Lkjob/core/BaseKJob;)V +} + +public final class kjob/api/KjobApiEx$Configuration : kjob/core/extension/BaseExtension$Configuration { + public fun ()V +} + +public final class kjob/api/KjobApiExtension : kjob/core/extension/ExtensionId { + public static final field INSTANCE Lkjob/api/KjobApiExtension; + public fun name ()Ljava/lang/String; +} + diff --git a/kjob-core/api/kjob-core.api b/kjob-core/api/kjob-core.api new file mode 100644 index 0000000..4a30c15 --- /dev/null +++ b/kjob-core/api/kjob-core.api @@ -0,0 +1,409 @@ +public abstract interface class kjob/core/BaseJob { + public abstract fun getName ()Ljava/lang/String; +} + +public abstract class kjob/core/BaseKJob : kjob/core/KJob { + public fun (Lkjob/core/BaseKJob$Configuration;)V + public fun getClock ()Ljava/time/Clock; + public final fun getConfig ()Lkjob/core/BaseKJob$Configuration; + public final fun getId ()Ljava/util/UUID; + public abstract fun getJobRepository ()Lkjob/core/repository/JobRepository; + public abstract fun getLockRepository ()Lkjob/core/repository/LockRepository; + public fun invoke (Lkjob/core/extension/ExtensionId;)Lkjob/core/extension/Extension; + public final fun jobExecutor ()Lkjob/core/internal/JobExecutor; + public final fun jobExecutors ()Lkjob/core/JobExecutors; + public final fun jobRegister ()Lkjob/core/internal/JobRegister; + public final fun jobScheduler ()Lkjob/core/internal/JobScheduler; + public fun register (Lkjob/core/Job;Lkotlin/jvm/functions/Function2;)Lkjob/core/KJob; + public fun schedule (Lkjob/core/Job;Ljava/time/Duration;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun schedule (Lkjob/core/Job;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun schedule-dWUq8MI (Lkjob/core/Job;JLkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun shutdown ()V + public fun start ()Lkjob/core/KJob; +} + +public class kjob/core/BaseKJob$Configuration : kjob/core/KJob$Configuration { + public fun ()V + public final fun extension (Lkjob/core/BaseKJob$Configuration;Lkjob/core/extension/ExtensionModule;Lkotlin/jvm/functions/Function1;)V + public static synthetic fun extension$default (Lkjob/core/BaseKJob$Configuration;Lkjob/core/BaseKJob$Configuration;Lkjob/core/extension/ExtensionModule;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public final fun getCleanupPeriodInSeconds ()J + public final fun getCleanupSize ()I + public final fun getExceptionHandler ()Lkotlin/jvm/functions/Function1; + public final fun getJobExecutionPeriodInSeconds ()J + public final fun getJson ()Lkotlinx/serialization/json/Json; + public final fun getKeepAliveExecutionPeriodInSeconds ()J + public final fun isWorker ()Z + public final fun setCleanupPeriodInSeconds (J)V + public final fun setCleanupSize (I)V + public final fun setExceptionHandler (Lkotlin/jvm/functions/Function1;)V + public final fun setJobExecutionPeriodInSeconds (J)V + public final fun setJson (Lkotlinx/serialization/json/Json;)V + public final fun setKeepAliveExecutionPeriodInSeconds (J)V + public final fun setWorker (Z)V +} + +public final class kjob/core/FunctionsKt { + public static final fun kjob (Lkjob/core/KJobFactory;Lkotlin/jvm/functions/Function1;)Lkjob/core/KJob; + public static synthetic fun kjob$default (Lkjob/core/KJobFactory;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkjob/core/KJob; +} + +public abstract class kjob/core/Job : kjob/core/BaseJob { + public fun (Ljava/lang/String;)V + protected final fun bool (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun boolList (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun double (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun doubleList (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + public fun getName ()Ljava/lang/String; + public final fun getPropNames ()Ljava/util/List; + protected final fun integer (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun integerList (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun long (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun longList (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun nullable (Lkjob/core/Prop;)Lkjob/core/Prop; + protected final fun serializable (Lkjob/core/Job;Ljava/lang/String;Lkotlin/reflect/KClass;)Lkjob/core/Prop; + protected final fun string (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; + protected final fun stringList (Lkjob/core/Job;Ljava/lang/String;)Lkjob/core/Prop; +} + +public abstract interface class kjob/core/JobExecutors { + public abstract fun getDispatchers ()Ljava/util/Map; + public abstract fun getExecutorService ()Ljava/util/concurrent/ScheduledExecutorService; + public abstract fun shutdown ()V +} + +public final class kjob/core/JobExecutors$DefaultImpls { + public static fun shutdown (Lkjob/core/JobExecutors;)V +} + +public abstract interface class kjob/core/KJob { + public abstract fun invoke (Lkjob/core/extension/ExtensionId;)Lkjob/core/extension/Extension; + public abstract fun register (Lkjob/core/Job;Lkotlin/jvm/functions/Function2;)Lkjob/core/KJob; + public abstract fun schedule (Lkjob/core/Job;Ljava/time/Duration;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun schedule (Lkjob/core/Job;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun schedule-dWUq8MI (Lkjob/core/Job;JLkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun shutdown ()V + public abstract fun start ()Lkjob/core/KJob; +} + +public class kjob/core/KJob$Configuration { + public fun ()V + public final fun getBlockingMaxJobs ()I + public final fun getDefaultJobExecutor ()Lkjob/core/job/JobExecutionType; + public final fun getMaxRetries ()I + public final fun getNonBlockingMaxJobs ()I + public final fun setBlockingMaxJobs (I)V + public final fun setDefaultJobExecutor (Lkjob/core/job/JobExecutionType;)V + public final fun setMaxRetries (I)V + public final fun setNonBlockingMaxJobs (I)V +} + +public final class kjob/core/KJob$DefaultImpls { + public static synthetic fun schedule$default (Lkjob/core/KJob;Lkjob/core/Job;Ljava/time/Duration;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun schedule$default (Lkjob/core/KJob;Lkjob/core/Job;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun schedule-dWUq8MI$default (Lkjob/core/KJob;Lkjob/core/Job;JLkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public abstract interface class kjob/core/KJobFactory { + public abstract fun create (Lkotlin/jvm/functions/Function1;)Lkjob/core/KJob; +} + +public abstract class kjob/core/KronJob : kjob/core/BaseJob { + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun getCronExpression ()Ljava/lang/String; + public fun getName ()Ljava/lang/String; +} + +public abstract interface class kjob/core/Prop { + public static final field Companion Lkjob/core/Prop$Companion; + public abstract fun getName ()Ljava/lang/String; +} + +public final class kjob/core/Prop$Companion { + public final fun invoke (Ljava/lang/String;Z)Lkjob/core/Prop; + public static synthetic fun invoke$default (Lkjob/core/Prop$Companion;Ljava/lang/String;ZILjava/lang/Object;)Lkjob/core/Prop; +} + +public final class kjob/core/Prop$Companion$Impl : kjob/core/Prop { + public fun (Ljava/lang/String;Z)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Z + public final fun copy (Ljava/lang/String;Z)Lkjob/core/Prop$Companion$Impl; + public static synthetic fun copy$default (Lkjob/core/Prop$Companion$Impl;Ljava/lang/String;ZILjava/lang/Object;)Lkjob/core/Prop$Companion$Impl; + public fun equals (Ljava/lang/Object;)Z + public fun getName ()Ljava/lang/String; + public final fun getSerialize ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class kjob/core/dsl/CompletionJobContext { + public final fun getJobId ()Ljava/lang/String; + public final fun getJobName ()Ljava/lang/String; + public final fun getLogger ()Lorg/slf4j/Logger; + public final fun time ()Ljava/time/Duration; +} + +public final class kjob/core/dsl/ErrorJobContext { + public final fun getError ()Ljava/lang/Throwable; + public final fun getJobId ()Ljava/lang/String; + public final fun getJobName ()Ljava/lang/String; + public final fun getLogger ()Lorg/slf4j/Logger; +} + +public class kjob/core/dsl/JobContext : kotlinx/coroutines/CoroutineScope { + public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext; + public final fun getJobId ()Ljava/lang/String; + public final fun getLogger ()Lorg/slf4j/Logger; + public final fun setInitialMax (ILkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun setInitialMax (JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun step (ILkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun step (JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun step$default (Lkjob/core/dsl/JobContext;JLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public final class kjob/core/dsl/JobContextWithProps : kjob/core/dsl/JobContext { + public final fun getProps ()Lkjob/core/job/JobProps; +} + +public final class kjob/core/dsl/JobRegisterContext { + public final fun execute (Lkotlin/jvm/functions/Function2;)Lkjob/core/dsl/KJobFunctions; + public final fun getExecutionType ()Lkjob/core/job/JobExecutionType; + public final fun getMaxRetries ()I + public final fun setExecutionType (Lkjob/core/job/JobExecutionType;)V + public final fun setMaxRetries (I)V +} + +public final class kjob/core/dsl/KJobFunctions { + public final fun onComplete (Lkotlin/jvm/functions/Function2;)Lkjob/core/dsl/KJobFunctions; + public final fun onError (Lkotlin/jvm/functions/Function2;)Lkjob/core/dsl/KJobFunctions; +} + +public final class kjob/core/dsl/ScheduleContext { + public fun (Lkotlinx/serialization/json/Json;)V + public final fun getJobId ()Ljava/lang/String; + public final fun getProps ()Lkjob/core/dsl/ScheduleContext$Props; + public final fun setJobId (Ljava/lang/String;)V +} + +public final class kjob/core/dsl/ScheduleContext$Props { + public fun (Lkjob/core/dsl/ScheduleContext;)V + public final fun setProp (Ljava/lang/String;Ljava/lang/Object;Lkotlinx/serialization/KSerializer;)V +} + +public abstract class kjob/core/extension/BaseExtension : kjob/core/extension/Extension { + public fun (Lkjob/core/extension/ExtensionId;)V + public fun getId ()Lkjob/core/extension/ExtensionId; + public fun shutdown ()V + public fun start ()V +} + +public class kjob/core/extension/BaseExtension$Configuration : kjob/core/extension/Extension$Configuration { + public fun ()V +} + +public abstract interface class kjob/core/extension/Extension { + public abstract fun getId ()Lkjob/core/extension/ExtensionId; + public abstract fun shutdown ()V + public abstract fun start ()V +} + +public class kjob/core/extension/Extension$Configuration { + public fun ()V +} + +public final class kjob/core/extension/Extension$DefaultImpls { + public static fun shutdown (Lkjob/core/extension/Extension;)V + public static fun start (Lkjob/core/extension/Extension;)V +} + +public abstract interface class kjob/core/extension/ExtensionId { + public abstract fun name ()Ljava/lang/String; +} + +public final class kjob/core/extension/ExtensionId$DefaultImpls { + public static fun name (Lkjob/core/extension/ExtensionId;)Ljava/lang/String; +} + +public abstract interface class kjob/core/extension/ExtensionModule { + public abstract fun create (Lkotlin/jvm/functions/Function1;Lkjob/core/KJob$Configuration;)Lkotlin/jvm/functions/Function1; + public abstract fun getId ()Lkjob/core/extension/ExtensionId; +} + +public final class kjob/core/internal/DefaultRunnableJob : kjob/core/internal/RunnableJob { + public fun (Lkjob/core/BaseJob;Lkjob/core/KJob$Configuration;Lkotlin/jvm/functions/Function2;)V + public fun execute (Lkjob/core/dsl/JobContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getExecutionType ()Lkjob/core/job/JobExecutionType; + public fun getJob ()Lkjob/core/BaseJob; + public fun getMaxRetries ()I +} + +public abstract interface class kjob/core/internal/DispatcherWrapper { + public abstract fun canExecute ()Z + public abstract fun getCoroutineDispatcher ()Lkotlinx/coroutines/CoroutineDispatcher; + public abstract fun shutdown ()V +} + +public abstract interface class kjob/core/internal/JobExecutor { + public static final field Companion Lkjob/core/internal/JobExecutor$Companion; + public abstract fun canExecute (Lkjob/core/job/JobExecutionType;)Z + public abstract fun execute (Lkjob/core/internal/RunnableJob;Lkjob/core/job/ScheduledJob;Lkjob/core/repository/JobRepository;)V +} + +public final class kjob/core/internal/JobExecutor$Companion { + public final fun getNOOP ()Lkjob/core/internal/JobExecutor; +} + +public abstract interface class kjob/core/internal/JobRegister { + public abstract fun get (Ljava/lang/String;)Lkjob/core/internal/RunnableJob; + public abstract fun jobs (Lkjob/core/job/JobExecutionType;)Ljava/util/Set; + public abstract fun register (Lkjob/core/internal/RunnableJob;)V +} + +public abstract class kjob/core/internal/JobResult { +} + +public abstract interface class kjob/core/internal/JobScheduler { + public abstract fun schedule (Lkjob/core/job/JobSettings;Ljava/time/Instant;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class kjob/core/internal/JobScheduler$DefaultImpls { + public static synthetic fun schedule$default (Lkjob/core/internal/JobScheduler;Lkjob/core/job/JobSettings;Ljava/time/Instant;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public abstract interface class kjob/core/internal/RunnableJob { + public abstract fun execute (Lkjob/core/dsl/JobContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getExecutionType ()Lkjob/core/job/JobExecutionType; + public abstract fun getJob ()Lkjob/core/BaseJob; + public abstract fun getMaxRetries ()I +} + +public abstract class kjob/core/internal/scheduler/SimplePeriodScheduler { + public fun (Ljava/util/concurrent/ScheduledExecutorService;J)V + protected final fun run (Lkotlin/jvm/functions/Function1;)V + public fun shutdown ()V +} + +public final class kjob/core/job/JobExecutionType : java/lang/Enum { + public static final field BLOCKING Lkjob/core/job/JobExecutionType; + public static final field NON_BLOCKING Lkjob/core/job/JobExecutionType; + public static fun valueOf (Ljava/lang/String;)Lkjob/core/job/JobExecutionType; + public static fun values ()[Lkjob/core/job/JobExecutionType; +} + +public final class kjob/core/job/JobProgress { + public fun (JLjava/lang/Long;Ljava/time/Instant;Ljava/time/Instant;)V + public synthetic fun (JLjava/lang/Long;Ljava/time/Instant;Ljava/time/Instant;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/Long; + public final fun component3 ()Ljava/time/Instant; + public final fun component4 ()Ljava/time/Instant; + public final fun copy (JLjava/lang/Long;Ljava/time/Instant;Ljava/time/Instant;)Lkjob/core/job/JobProgress; + public static synthetic fun copy$default (Lkjob/core/job/JobProgress;JLjava/lang/Long;Ljava/time/Instant;Ljava/time/Instant;ILjava/lang/Object;)Lkjob/core/job/JobProgress; + public fun equals (Ljava/lang/Object;)Z + public final fun getCompletedAt ()Ljava/time/Instant; + public final fun getMax ()Ljava/lang/Long; + public final fun getStartedAt ()Ljava/time/Instant; + public final fun getStep ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class kjob/core/job/JobProps { + public fun equals (Ljava/lang/Object;)Z + public final fun getData (Ljava/lang/String;Lkotlinx/serialization/KSerializer;)Ljava/lang/Object; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class kjob/core/job/JobSettings { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lkjob/core/job/JobSettings; + public static synthetic fun copy$default (Lkjob/core/job/JobSettings;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)Lkjob/core/job/JobSettings; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getProperties ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class kjob/core/job/JobStatus : java/lang/Enum { + public static final field COMPLETE Lkjob/core/job/JobStatus; + public static final field CREATED Lkjob/core/job/JobStatus; + public static final field ERROR Lkjob/core/job/JobStatus; + public static final field FAILED Lkjob/core/job/JobStatus; + public static final field RUNNING Lkjob/core/job/JobStatus; + public static final field SCHEDULED Lkjob/core/job/JobStatus; + public static fun valueOf (Ljava/lang/String;)Lkjob/core/job/JobStatus; + public static fun values ()[Lkjob/core/job/JobStatus; +} + +public final class kjob/core/job/Lock { + public fun (Ljava/util/UUID;Ljava/time/Instant;)V + public final fun component1 ()Ljava/util/UUID; + public final fun component2 ()Ljava/time/Instant; + public final fun copy (Ljava/util/UUID;Ljava/time/Instant;)Lkjob/core/job/Lock; + public static synthetic fun copy$default (Lkjob/core/job/Lock;Ljava/util/UUID;Ljava/time/Instant;ILjava/lang/Object;)Lkjob/core/job/Lock; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/util/UUID; + public final fun getUpdatedAt ()Ljava/time/Instant; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class kjob/core/job/ScheduledJob { + public fun (Ljava/lang/String;Lkjob/core/job/JobStatus;Ljava/time/Instant;Ljava/lang/String;ILjava/util/UUID;Ljava/time/Instant;Ljava/time/Instant;Lkjob/core/job/JobSettings;Lkjob/core/job/JobProgress;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Lkjob/core/job/JobProgress; + public final fun component2 ()Lkjob/core/job/JobStatus; + public final fun component3 ()Ljava/time/Instant; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()I + public final fun component6 ()Ljava/util/UUID; + public final fun component7 ()Ljava/time/Instant; + public final fun component8 ()Ljava/time/Instant; + public final fun component9 ()Lkjob/core/job/JobSettings; + public final fun copy (Ljava/lang/String;Lkjob/core/job/JobStatus;Ljava/time/Instant;Ljava/lang/String;ILjava/util/UUID;Ljava/time/Instant;Ljava/time/Instant;Lkjob/core/job/JobSettings;Lkjob/core/job/JobProgress;)Lkjob/core/job/ScheduledJob; + public static synthetic fun copy$default (Lkjob/core/job/ScheduledJob;Ljava/lang/String;Lkjob/core/job/JobStatus;Ljava/time/Instant;Ljava/lang/String;ILjava/util/UUID;Ljava/time/Instant;Ljava/time/Instant;Lkjob/core/job/JobSettings;Lkjob/core/job/JobProgress;ILjava/lang/Object;)Lkjob/core/job/ScheduledJob; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Ljava/time/Instant; + public final fun getId ()Ljava/lang/String; + public final fun getKjobId ()Ljava/util/UUID; + public final fun getProgress ()Lkjob/core/job/JobProgress; + public final fun getRetries ()I + public final fun getRunAt ()Ljava/time/Instant; + public final fun getSettings ()Lkjob/core/job/JobSettings; + public final fun getStatus ()Lkjob/core/job/JobStatus; + public final fun getStatusMessage ()Ljava/lang/String; + public final fun getUpdatedAt ()Ljava/time/Instant; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class kjob/core/repository/JobRepository { + public abstract fun completeProgress (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun exist (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun findNext (Ljava/util/Set;Ljava/util/Set;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun findNextOne (Ljava/util/Set;Ljava/util/Set;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun get (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun reset (Ljava/lang/String;Ljava/util/UUID;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun save (Lkjob/core/job/JobSettings;Ljava/time/Instant;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun setProgressMax (Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun startProgress (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun stepProgress (Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun update (Ljava/lang/String;Ljava/util/UUID;Ljava/util/UUID;Lkjob/core/job/JobStatus;Ljava/lang/String;ILkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class kjob/core/repository/JobRepository$DefaultImpls { + public static fun findNextOne (Lkjob/core/repository/JobRepository;Ljava/util/Set;Ljava/util/Set;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stepProgress$default (Lkjob/core/repository/JobRepository;Ljava/lang/String;JLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public abstract interface class kjob/core/repository/LockRepository { + public abstract fun exists (Ljava/util/UUID;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun ping (Ljava/util/UUID;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + diff --git a/kjob-inmem/api/kjob-inmem.api b/kjob-inmem/api/kjob-inmem.api new file mode 100644 index 0000000..2b77223 --- /dev/null +++ b/kjob-inmem/api/kjob-inmem.api @@ -0,0 +1,17 @@ +public final class kjob/inmem/InMem : kjob/core/KJobFactory { + public static final field INSTANCE Lkjob/inmem/InMem; + public fun create (Lkotlin/jvm/functions/Function1;)Lkjob/core/KJob; +} + +public final class kjob/inmem/InMemKJob : kjob/core/BaseKJob { + public fun (Lkjob/inmem/InMemKJob$Configuration;)V + public fun getJobRepository ()Lkjob/core/repository/JobRepository; + public fun getLockRepository ()Lkjob/core/repository/LockRepository; +} + +public final class kjob/inmem/InMemKJob$Configuration : kjob/core/BaseKJob$Configuration { + public fun ()V + public final fun getExpireLockInMinutes ()J + public final fun setExpireLockInMinutes (J)V +} + diff --git a/kjob-jdbi/api/kjob-jdbi.api b/kjob-jdbi/api/kjob-jdbi.api new file mode 100644 index 0000000..927df71 --- /dev/null +++ b/kjob-jdbi/api/kjob-jdbi.api @@ -0,0 +1,29 @@ +public final class kjob/jdbi/JdbiKJob : kjob/core/BaseKJob { + public static final field Companion Lkjob/jdbi/JdbiKJob$Companion; + public fun (Lkjob/jdbi/JdbiKJob$Configuration;)V + public fun getJobRepository ()Lkjob/core/repository/JobRepository; + public fun getLockRepository ()Lkjob/core/repository/LockRepository; + public fun shutdown ()V + public fun start ()Lkjob/core/KJob; +} + +public final class kjob/jdbi/JdbiKJob$Companion : kjob/core/KJobFactory { + public fun create (Lkotlin/jvm/functions/Function1;)Lkjob/core/KJob; +} + +public final class kjob/jdbi/JdbiKJob$Configuration : kjob/core/BaseKJob$Configuration { + public fun ()V + public final fun getConnectionString ()Ljava/lang/String; + public final fun getExpireLockInMinutes ()J + public final fun getHandle ()Lorg/jdbi/v3/core/Handle; + public final fun getJdbi ()Lorg/jdbi/v3/core/Jdbi; + public final fun getJobTableName ()Ljava/lang/String; + public final fun getLockTableName ()Ljava/lang/String; + public final fun setConnectionString (Ljava/lang/String;)V + public final fun setExpireLockInMinutes (J)V + public final fun setHandle (Lorg/jdbi/v3/core/Handle;)V + public final fun setJdbi (Lorg/jdbi/v3/core/Jdbi;)V + public final fun setJobTableName (Ljava/lang/String;)V + public final fun setLockTableName (Ljava/lang/String;)V +} + diff --git a/kjob-kron/api/kjob-kron.api b/kjob-kron/api/kjob-kron.api new file mode 100644 index 0000000..282d538 --- /dev/null +++ b/kjob-kron/api/kjob-kron.api @@ -0,0 +1,23 @@ +public final class kjob/kron/Kron : kjob/core/extension/ExtensionId { + public static final field INSTANCE Lkjob/kron/Kron; + public fun name ()Ljava/lang/String; +} + +public final class kjob/kron/KronEx : kjob/core/extension/BaseExtension { + public fun (Lkjob/kron/KronEx$Configuration;Lkjob/core/BaseKJob$Configuration;Lkjob/core/BaseKJob;)V + public final fun kron (Lkjob/core/KronJob;Lkotlin/jvm/functions/Function2;)V + public fun shutdown ()V + public fun start ()V +} + +public final class kjob/kron/KronEx$Configuration : kjob/core/extension/BaseExtension$Configuration { + public fun ()V +} + +public final class kjob/kron/KronModule : kjob/core/extension/ExtensionModule { + public static final field INSTANCE Lkjob/kron/KronModule; + public fun create (Lkotlin/jvm/functions/Function1;Lkjob/core/BaseKJob$Configuration;)Lkotlin/jvm/functions/Function1; + public synthetic fun create (Lkotlin/jvm/functions/Function1;Lkjob/core/KJob$Configuration;)Lkotlin/jvm/functions/Function1; + public fun getId ()Lkjob/core/extension/ExtensionId; +} + diff --git a/kjob-mongo/api/kjob-mongo.api b/kjob-mongo/api/kjob-mongo.api new file mode 100644 index 0000000..0f42aeb --- /dev/null +++ b/kjob-mongo/api/kjob-mongo.api @@ -0,0 +1,28 @@ +public final class kjob/mongo/Mongo : kjob/core/KJobFactory { + public static final field INSTANCE Lkjob/mongo/Mongo; + public fun create (Lkotlin/jvm/functions/Function1;)Lkjob/core/KJob; +} + +public final class kjob/mongo/MongoKJob : kjob/core/BaseKJob { + public fun (Lkjob/mongo/MongoKJob$Configuration;)V + public fun getJobRepository ()Lkjob/core/repository/JobRepository; + public fun getLockRepository ()Lkjob/core/repository/LockRepository; + public fun start ()Lkjob/core/KJob; +} + +public final class kjob/mongo/MongoKJob$Configuration : kjob/core/BaseKJob$Configuration { + public fun ()V + public final fun getClient ()Lcom/mongodb/reactivestreams/client/MongoClient; + public final fun getConnectionString ()Ljava/lang/String; + public final fun getDatabaseName ()Ljava/lang/String; + public final fun getExpireLockInMinutes ()J + public final fun getJobCollection ()Ljava/lang/String; + public final fun getLockCollection ()Ljava/lang/String; + public final fun setClient (Lcom/mongodb/reactivestreams/client/MongoClient;)V + public final fun setConnectionString (Ljava/lang/String;)V + public final fun setDatabaseName (Ljava/lang/String;)V + public final fun setExpireLockInMinutes (J)V + public final fun setJobCollection (Ljava/lang/String;)V + public final fun setLockCollection (Ljava/lang/String;)V +} +