Skip to content

Commit 63ced64

Browse files
Make the "environment" parameter to @JavaMethod initializers optional (#102)
Co-authored-by: Tim Wang <tim.wang@ing.com>
1 parent 6964e71 commit 63ced64

36 files changed

+119
-115
lines changed

Package.swift

Lines changed: 13 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,6 @@ let package = Package(
7777
targets: ["JavaKitReflection"]
7878
),
7979

80-
.library(
81-
name: "JavaKitVM",
82-
targets: ["JavaKitVM"]
83-
),
84-
8580
.library(
8681
name: "JavaTypes",
8782
targets: ["JavaTypes"]
@@ -165,6 +160,18 @@ let package = Package(
165160
swiftSettings: [
166161
.swiftLanguageMode(.v5),
167162
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"])
163+
],
164+
linkerSettings: [
165+
.unsafeFlags(
166+
[
167+
"-L\(javaHome)/lib/server",
168+
"-Xlinker",
169+
"-rpath",
170+
"-Xlinker",
171+
"\(javaHome)/lib/server",
172+
]
173+
),
174+
.linkedLibrary("jvm"),
168175
]
169176
),
170177
.target(
@@ -203,27 +210,6 @@ let package = Package(
203210
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"])
204211
]
205212
),
206-
.target(
207-
name: "JavaKitVM",
208-
dependencies: ["JavaKit"],
209-
swiftSettings: [
210-
.swiftLanguageMode(.v5),
211-
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"])
212-
],
213-
linkerSettings: [
214-
.unsafeFlags(
215-
[
216-
"-L\(javaHome)/lib/server",
217-
"-Xlinker",
218-
"-rpath",
219-
"-Xlinker",
220-
"\(javaHome)/lib/server",
221-
]
222-
),
223-
.linkedLibrary("jvm"),
224-
]
225-
),
226-
227213
.plugin(
228214
name: "JavaCompilerPlugin",
229215
capability: .buildTool()
@@ -272,7 +258,6 @@ let package = Package(
272258
"JavaKitJar",
273259
"JavaKitReflection",
274260
"JavaKitNetwork",
275-
"JavaKitVM",
276261
"JavaTypes",
277262
],
278263
swiftSettings: [
@@ -291,7 +276,6 @@ let package = Package(
291276
"JavaKit",
292277
"JavaKitJar",
293278
"JavaKitNetwork",
294-
"JavaKitVM",
295279
"Java2SwiftLib",
296280
],
297281

@@ -328,7 +312,7 @@ let package = Package(
328312

329313
.testTarget(
330314
name: "JavaKitTests",
331-
dependencies: ["JavaKit", "JavaKitNetwork", "JavaKitVM"],
315+
dependencies: ["JavaKit", "JavaKitNetwork"],
332316
swiftSettings: [
333317
.swiftLanguageMode(.v5)
334318
]

Samples/JavaProbablyPrime/Package.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ let package = Package(
2727
name: "JavaProbablyPrime",
2828
dependencies: [
2929
.product(name: "JavaKit", package: "swift-java"),
30-
.product(name: "JavaKitVM", package: "swift-java"),
3130
.product(name: "ArgumentParser", package: "swift-argument-parser"),
3231
],
3332
swiftSettings: [

Samples/JavaProbablyPrime/Sources/JavaProbablyPrime/prime.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import ArgumentParser
1616
import JavaKit
17-
import JavaKitVM
1817

1918
@main
2019
struct ProbablyPrime: ParsableCommand {

Samples/JavaSieve/Package.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ let package = Package(
7070
"JavaMath",
7171
.product(name: "JavaKit", package: "swift-java"),
7272
.product(name: "JavaKitCollection", package: "swift-java"),
73-
.product(name: "JavaKitVM", package: "swift-java"),
7473
],
7574
swiftSettings: [
7675
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"])

Sources/Java2Swift/JavaToSwift.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import JavaKit
1919
import JavaKitJar
2020
import JavaKitNetwork
2121
import JavaKitReflection
22-
import JavaKitVM
2322
import SwiftSyntax
2423
import SwiftSyntaxBuilder
2524

Sources/Java2SwiftLib/JavaTranslator.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ extension JavaTranslator {
410410
extension JavaTranslator {
411411
/// Translates the given Java constructor into a Swift declaration.
412412
package func translateConstructor(_ javaConstructor: Constructor<some AnyJavaObject>) throws -> DeclSyntax {
413-
let parameters = try translateParameters(javaConstructor.getParameters()) + ["environment: JNIEnvironment"]
413+
let parameters = try translateParameters(javaConstructor.getParameters()) + ["environment: JNIEnvironment? = nil"]
414414
let parametersStr = parameters.map { $0.description }.joined(separator: ", ")
415415
let throwsStr = javaConstructor.throwsCheckedException ? "throws" : ""
416416

@@ -483,8 +483,13 @@ extension JavaTranslator {
483483
"""
484484

485485
let initSyntax: DeclSyntax = """
486-
public init(_ enumValue: \(raw: name), environment: JNIEnvironment) {
487-
let classObj = try! JavaClass<Self>(in: environment)
486+
public init(_ enumValue: \(raw: name), environment: JNIEnvironment? = nil) {
487+
let _environment = if let environment {
488+
environment
489+
} else {
490+
try! JavaVirtualMachine.shared().environment()
491+
}
492+
let classObj = try! JavaClass<Self>(in: _environment)
488493
switch enumValue {
489494
\(raw: enumFields.map {
490495
return """

Sources/JavaKitVM/JavaVirtualMachine.swift renamed to Sources/JavaKit/JavaKitVM/JavaVirtualMachine.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import JavaKit
16-
1715
typealias JavaVMPointer = UnsafeMutablePointer<JavaVM?>
1816

1917
public final class JavaVirtualMachine: @unchecked Sendable {

Sources/JavaKit/generated/Exception.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ import JavaRuntime
44
@JavaClass("java.lang.Exception", extends: Throwable.self)
55
public struct Exception {
66
@JavaMethod
7-
public init(_ arg0: Throwable?, environment: JNIEnvironment)
7+
public init(_ arg0: Throwable?, environment: JNIEnvironment? = nil)
88

99
@JavaMethod
10-
public init(_ arg0: String, _ arg1: Throwable?, environment: JNIEnvironment)
10+
public init(_ arg0: String, _ arg1: Throwable?, environment: JNIEnvironment? = nil)
1111

1212
@JavaMethod
13-
public init(_ arg0: String, environment: JNIEnvironment)
13+
public init(_ arg0: String, environment: JNIEnvironment? = nil)
1414

1515
@JavaMethod
16-
public init(environment: JNIEnvironment)
16+
public init(environment: JNIEnvironment? = nil)
1717

1818
@JavaMethod
1919
public func printStackTrace()

Sources/JavaKit/generated/JavaError.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ import JavaRuntime
44
@JavaClass("java.lang.Error", extends: Throwable.self)
55
public struct JavaError {
66
@JavaMethod
7-
public init(_ arg0: Throwable?, environment: JNIEnvironment)
7+
public init(_ arg0: Throwable?, environment: JNIEnvironment? = nil)
88

99
@JavaMethod
10-
public init(_ arg0: String, _ arg1: Throwable?, environment: JNIEnvironment)
10+
public init(_ arg0: String, _ arg1: Throwable?, environment: JNIEnvironment? = nil)
1111

1212
@JavaMethod
13-
public init(_ arg0: String, environment: JNIEnvironment)
13+
public init(_ arg0: String, environment: JNIEnvironment? = nil)
1414

1515
@JavaMethod
16-
public init(environment: JNIEnvironment)
16+
public init(environment: JNIEnvironment? = nil)
1717

1818
@JavaMethod
1919
public func printStackTrace()

0 commit comments

Comments
 (0)