Skip to content

Commit 5a6616b

Browse files
committed
Add JavaJson Example
1 parent ef69b18 commit 5a6616b

File tree

5 files changed

+84
-30
lines changed

5 files changed

+84
-30
lines changed

Samples/JavaDependencySampleApp/Package.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ let package = Package(
6767
.product(name: "SwiftJava", package: "swift-java"),
6868
.product(name: "CJNI", package: "swift-java"),
6969
.product(name: "JavaUtilFunction", package: "swift-java"),
70-
"JavaCommonsCSV"
70+
"JavaCommonsCSV",
71+
"JavaJson",
7172
],
7273
exclude: ["swift-java.config"],
7374
swiftSettings: [
@@ -99,6 +100,25 @@ let package = Package(
99100
]
100101
),
101102

103+
.target(
104+
name: "JavaJson",
105+
dependencies: [
106+
.product(name: "SwiftJava", package: "swift-java"),
107+
.product(name: "JavaUtilFunction", package: "swift-java"),
108+
.product(name: "JavaUtil", package: "swift-java"),
109+
.product(name: "JavaIO", package: "swift-java"),
110+
.product(name: "JavaNet", package: "swift-java"),
111+
],
112+
exclude: ["swift-java.config"],
113+
swiftSettings: [
114+
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"]),
115+
.swiftLanguageMode(.v5),
116+
],
117+
plugins: [
118+
.plugin(name: "SwiftJavaPlugin", package: "swift-java"),
119+
]
120+
),
121+
102122
.target(name: "JavaExample"),
103123

104124
]

Samples/JavaDependencySampleApp/Sources/JavaCommonsCSV/swift-java-with-custom-repositories.config

Lines changed: 0 additions & 29 deletions
This file was deleted.

Samples/JavaDependencySampleApp/Sources/JavaDependencySample/main.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,16 @@ import JavaUtilFunction
1717
import JavaIO
1818
import SwiftJavaConfigurationShared
1919
import Foundation
20+
#if canImport(System)
21+
import System
22+
#endif
2023

2124
// Import the commons-csv library wrapper:
2225
import JavaCommonsCSV
2326

27+
// Import the json library wrapper:
28+
import JavaJson
29+
2430
print("")
2531
print("")
2632
print("-----------------------------------------------------------------------")
@@ -52,4 +58,33 @@ for record in try CSVFormatClass.RFC4180.parse(reader)!.getRecords()! {
5258
}
5359
}
5460

61+
print("Now testing Json library...")
62+
63+
let json = Json(#"{"host": "localhost", "port": 80}"#)
64+
65+
precondition(json.hasOwnProperty("port"))
66+
67+
print(json.get("port").toString())
68+
precondition(json.get("port").as(JavaInteger.self)!.intValue() == 80)
69+
70+
#if canImport(System)
71+
extension FilePath {
72+
static var currentWorkingDirectory: Self {
73+
let path = getcwd(nil, 0)!
74+
defer { free(path) }
75+
return .init(String(cString: path))
76+
}
77+
}
78+
print("Reading swift-java.config inside JavaJson folder...")
79+
80+
let configPath = FilePath.currentWorkingDirectory.appending("Sources/JavaJson/swift-java.config").string
81+
82+
let config = try JavaClass<Json>().of.url("file://" + configPath)!
83+
84+
precondition(config.hasOwnProperty("repositories"))
85+
86+
print(config.toString())
87+
88+
#endif
89+
5590
print("Done.")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2024 Apple Inc. and the Swift.org project authors
6+
// Licensed under Apache License v2.0
7+
//
8+
// See LICENSE.txt for license information
9+
// See CONTRIBUTORS.txt for the list of Swift.org project authors
10+
//
11+
// SPDX-License-Identifier: Apache-2.0
12+
//
13+
//===----------------------------------------------------------------------===//
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"classes": {
3+
"org.andrejs.json.Json": "Json",
4+
"org.andrejs.json.JsonFactory": "JsonFactory"
5+
},
6+
"dependencies": [
7+
"org.andrejs:json:1.2"
8+
],
9+
"repositories": [
10+
{
11+
"type": "maven",
12+
"url": "https://jitpack.io"
13+
}
14+
]
15+
}

0 commit comments

Comments
 (0)