Skip to content

Commit 08121fc

Browse files
chore: make some internal modules public
Make some internal lifecycle classes / methods public to allow for other modules to implement advanced hot reload use cases. GitOrigin-RevId: 1e3b6bd45cfda04fbebffeec59d0357dff401890
1 parent 97e03a4 commit 08121fc

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

misk/api/misk.api

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ public final class misk/MiskApplication {
299299
public fun <init> ([Lcom/google/inject/Module;)V
300300
public fun <init> ([Lmisk/MiskCommand;)V
301301
public final fun run ([Ljava/lang/String;)V
302+
public final fun start ()Lmisk/RunningMiskApplication;
302303
}
303304

304305
public abstract class misk/MiskCommand : java/lang/Runnable {
@@ -320,6 +321,13 @@ public final class misk/MiskRealServiceModule : misk/inject/KAbstractModule {
320321
public synthetic fun <init> (Lmisk/ServiceManagerConfig;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
321322
}
322323

324+
public abstract interface class misk/RunningMiskApplication {
325+
public abstract fun app ()Lmisk/MiskApplication;
326+
public abstract fun awaitTerminated ()V
327+
public abstract fun awaitTerminated (JLjava/util/concurrent/TimeUnit;)Z
328+
public abstract fun stop ()V
329+
}
330+
323331
public final class misk/client/BackwardsCompatibleClientsConfig {
324332
public fun <init> ()V
325333
public fun <init> (Ljava/time/Duration;)V
@@ -831,6 +839,11 @@ public final class misk/dev/DevApplicationKt {
831839
public static final fun isRunningDevApplication ()Z
832840
public static final fun runDevApplication (Lkotlin/reflect/KFunction;Ljava/util/List;)V
833841
public static synthetic fun runDevApplication$default (Lkotlin/reflect/KFunction;Ljava/util/List;ILjava/lang/Object;)V
842+
public static final fun setDevApplication ()V
843+
}
844+
845+
public final class misk/dev/GradleKt {
846+
public static final fun runGradleAsyncCompile (Ljava/lang/String;Lkotlin/jvm/functions/Function0;Ljava/util/List;)V
834847
}
835848

836849
public final class misk/environment/DeploymentModule : misk/inject/KAbstractModule {

misk/src/main/kotlin/misk/MiskApplication.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class MiskApplication private constructor(
111111
@VisibleForTesting
112112
internal lateinit var injector: Injector
113113

114-
internal fun start(): RunningMiskApplication {
114+
fun start(): RunningMiskApplication {
115115
log.info { "creating application injector" }
116116
injector = injectorGenerator()
117117
val serviceManager = injector.getInstance<ServiceManager>()
@@ -199,7 +199,7 @@ class MiskApplication private constructor(
199199
}
200200

201201

202-
internal interface RunningMiskApplication {
202+
interface RunningMiskApplication {
203203
fun stop()
204204

205205
fun awaitTerminated()

misk/src/main/kotlin/misk/dev/DevApplication.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package misk.dev
22

33
import misk.MiskApplication
44
import misk.RunningMiskApplication
5-
import misk.web.actions.javaMethod
5+
import misk.web.actions.FunctionWithOverrides
66
import java.lang.reflect.Method
77
import java.nio.file.Paths
88
import kotlin.io.path.absolute
99
import kotlin.io.path.exists
1010
import kotlin.reflect.KFunction
11+
import kotlin.reflect.jvm.javaMethod
1112

1213
internal class DevApplicationState {
1314
companion object {
@@ -21,6 +22,17 @@ fun isRunningDevApplication(): Boolean {
2122
return DevApplicationState.isRunning
2223
}
2324

25+
26+
/**
27+
* Intended for use by advanced hot reload use cases that extend the existing hot reload code.
28+
*
29+
* Should not be called by regular code.
30+
*/
31+
@misk.annotation.ExperimentalMiskApi
32+
fun setDevApplication() {
33+
DevApplicationState.isRunning = true
34+
}
35+
2436
@misk.annotation.ExperimentalMiskApi
2537
fun runDevApplication(miskApplicationBuilder : KFunction<MiskApplication>, additionalGradleArgs : List<String> = emptyList()) {
2638
DevApplicationState.isRunning = true

misk/src/main/kotlin/misk/dev/Gradle.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import java.io.File
44
import java.io.InputStream
55
import java.util.concurrent.atomic.AtomicBoolean
66

7-
internal fun runGradleAsyncCompile(projectDir : String, compilationComplete: () -> Unit, additionalGradleArgs: List<String>) {
7+
fun runGradleAsyncCompile(projectDir : String, compilationComplete: () -> Unit, additionalGradleArgs: List<String>) {
88
val t = Thread {
9-
val pb = ProcessBuilder(listOf("gradle", "compileKotlin", "--continuous") + additionalGradleArgs)
9+
val pb = ProcessBuilder(listOf("gradle", "classes", "--continuous") + additionalGradleArgs)
1010
pb.directory(File(projectDir))
1111

1212
val first = AtomicBoolean(false)
@@ -38,7 +38,6 @@ internal fun runGradleAsyncCompile(projectDir : String, compilationComplete: ()
3838
println("Gradle compilation failed, continuous compilation not available")
3939
}
4040
}
41-
t.setDaemon(true)
4241
t.start()
4342
}
4443

0 commit comments

Comments
 (0)