Skip to content

Commit 910e15d

Browse files
committed
feat: #16 support jvm args
1 parent 816d721 commit 910e15d

File tree

6 files changed

+20
-14
lines changed

6 files changed

+20
-14
lines changed

adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,25 @@ class KotlinDebugAdapter(
8888
configurationDoneResponse = response
8989
return response
9090
}
91-
91+
9292
override fun launch(args: Map<String, Any>) = launcherAsync.execute {
9393
performInitialization()
94-
94+
9595
val projectRoot = (args["projectRoot"] as? String)?.let { Paths.get(it) }
9696
?: throw missingRequestArgument("launch", "projectRoot")
97-
97+
9898
val mainClass = (args["mainClass"] as? String)
9999
?: throw missingRequestArgument("launch", "mainClass")
100-
100+
101+
val vmArguments:String? = (args["vmArguments"] as? String)
102+
101103
setupCommonInitializationParams(args)
102-
104+
103105
val config = LaunchConfiguration(
104106
debugClassPathResolver(listOf(projectRoot)).classpathOrEmpty,
105107
mainClass,
106-
projectRoot
108+
projectRoot,
109+
vmArguments ?: ""
107110
)
108111
debuggee = launcher.launch(
109112
config,
@@ -185,7 +188,7 @@ class KotlinDebugAdapter(
185188
performInitialization()
186189

187190
val projectRoot = (args["projectRoot"] as? String)?.let { Paths.get(it) }
188-
?: throw missingRequestArgument("launch", "projectRoot")
191+
?: throw missingRequestArgument("attach", "projectRoot")
189192

190193
val hostName = (args["hostName"] as? String)
191194
?: throw missingRequestArgument("attach", "hostName")

adapter/src/main/kotlin/org/javacs/ktda/core/launch/LaunchConfiguration.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ import java.nio.file.Path
55
class LaunchConfiguration(
66
val classpath: Set<Path>,
77
val mainClass: String,
8-
val projectRoot: Path
8+
val projectRoot: Path,
9+
val vmArguments: String = ""
910
)

adapter/src/main/kotlin/org/javacs/ktda/jdi/launch/JDILauncher.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class JDILauncher(
8484

8585
private fun formatOptions(config: LaunchConfiguration): String {
8686
var options = ""
87-
vmArguments?.let { options += it }
87+
options += config.vmArguments
8888
modulePaths?.let { options += " --module-path \"$modulePaths\"" }
8989
options += " -classpath \"${formatClasspath(config)}\""
9090
return options

adapter/src/test/kotlin/org/javacs/ktda/DebugAdapterTestFixture.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import org.hamcrest.Matchers.equalTo
1616

1717
abstract class DebugAdapterTestFixture(
1818
relativeWorkspaceRoot: String,
19-
private val mainClass: String
19+
private val mainClass: String,
20+
private val vmArguments: String = ""
2021
) : IDebugProtocolClient {
2122
val absoluteWorkspaceRoot: Path = Paths.get(DebugAdapterTestFixture::class.java.getResource("/Anchor.txt").toURI()).parent.resolve(relativeWorkspaceRoot)
2223
lateinit var debugAdapter: KotlinDebugAdapter
@@ -58,7 +59,8 @@ abstract class DebugAdapterTestFixture(
5859
println("Launching...")
5960
debugAdapter.launch(mapOf(
6061
"projectRoot" to absoluteWorkspaceRoot.toString(),
61-
"mainClass" to mainClass
62+
"mainClass" to mainClass,
63+
"vmArguments" to vmArguments
6264
)).join()
6365
println("Launched")
6466
}

adapter/src/test/kotlin/org/javacs/ktda/SampleWorkspaceTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import java.util.concurrent.CountDownLatch
2121
* Tests a very basic debugging scenario
2222
* using a sample application.
2323
*/
24-
class SampleWorkspaceTest : DebugAdapterTestFixture("sample-workspace", "sample.workspace.AppKt") {
24+
class SampleWorkspaceTest : DebugAdapterTestFixture("sample-workspace", "sample.workspace.AppKt", "-Dtest=testVmArgs") {
2525
private val latch = CountDownLatch(1)
2626
private var asyncException: Throwable? = null
2727

@@ -74,7 +74,7 @@ class SampleWorkspaceTest : DebugAdapterTestFixture("sample-workspace", "sample.
7474
variablesReference = receiver!!.variablesReference
7575
}).join().variables
7676

77-
assertThat(members.map { Pair(it.name, it.value) }, containsInAnyOrder(Pair("member", "\"test\"")))
77+
assertThat(members.map { Pair(it.name, it.value) }, containsInAnyOrder(Pair("member", "\"testVmArgs\"")))
7878
} catch (e: Throwable) {
7979
asyncException = e
8080
} finally {

adapter/src/test/resources/sample-workspace/src/main/kotlin/sample/workspace/App.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package sample.workspace
22

33
class App {
4-
private val member: String = "test"
4+
private val member: String = System.getProperty("test")
55
val greeting: String
66
get() {
77
val local: Int = 123

0 commit comments

Comments
 (0)