Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Commit 3f6477b

Browse files
Merge pull request #3 from OpenEdgn/dev
permission access for travis
2 parents b8832f7 + c3d5b94 commit 3f6477b

File tree

5 files changed

+40
-9
lines changed

5 files changed

+40
-9
lines changed

core/src/main/kotlin/com/github/open_edgn/data/format/ArgsReader.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,19 @@ class ArgsReader(args: Array<String>, vararg argsBeans: KClass<*>) {
7575
throw NullPointerException("无法初始化类型,因为字段${property.name} 为空,但此字段不允许空的数据!")
7676
}
7777
}
78-
val any = if (bean.isData) {
79-
val field = Unsafe::class.java.getDeclaredField("theUnsafe")
80-
field.isAccessible = true
81-
val unsafe = field.get(null) as Unsafe
82-
unsafe.allocateInstance(bean.javaObjectType)
83-
} else {
84-
bean.createInstance()
78+
val any = when {
79+
bean.isData -> {
80+
val field = Unsafe::class.java.getDeclaredField("theUnsafe")
81+
field.isAccessible = true
82+
val unsafe = field.get(null) as Unsafe
83+
unsafe.allocateInstance(bean.javaObjectType)
84+
}
85+
bean.objectInstance != null -> {
86+
bean.objectInstance!!
87+
}
88+
else -> {
89+
bean.createInstance()
90+
}
8591
}
8692
for ((index, property) in properties.withIndex()) {
8793
property.isAccessible = true

core/src/main/kotlin/com/github/open_edgn/data/format/InternalLogger.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ internal object InternalLogger {
1818
* 判断是否开启DEBUG
1919
*/
2020
private val isDebug: Boolean by lazy {
21-
System.getProperty("DateFormat4K.debug", "FALSE").toUpperCase() == "TRUE"
21+
System.getProperty("dataFormat4K.debug", "FALSE").toUpperCase() == "TRUE"
2222
}
2323
private val dateFormat = SimpleDateFormat("MM/dd HH:mm:ss")
2424
fun printLogger(clazz: Class<*>, type: Type, message: String, e: Throwable? = null) {
@@ -27,7 +27,7 @@ internal object InternalLogger {
2727
System.out.printf("[%s][%s] - %s:[%s]\r\n[%s]\r\n", dateFormat.format(System.currentTimeMillis()),
2828
type.name, clazz.simpleName, message, e.readPrintText())
2929
} else {
30-
System.out.printf("[%s][%s] - %s:[%s]\r\n[%s]\r\n", dateFormat.format(System.currentTimeMillis()),
30+
System.out.printf("[%s][%s] - %s:[%s]\r\n", dateFormat.format(System.currentTimeMillis()),
3131
type.name, clazz.simpleName, message)
3232
}
3333
}

core/src/test/kotlin/com/github/open_edgn/data/format/ArgsReaderTest.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
package com.github.open_edgn.data.format
22

33
import org.junit.jupiter.api.Assertions.assertEquals
4+
import org.junit.jupiter.api.BeforeEach
45
import org.junit.jupiter.api.Test
56
import java.io.File
67

78
internal class ArgsReaderTest {
9+
@BeforeEach
10+
fun before() {
11+
System.setProperty("dataFormat4K.debug", "true")
12+
}
13+
814
@Test
915
fun test() {
1016
val argsReader = ArgsReader(arrayOf("--config", "%{user.home}"), ArgsLoader::class, Data::class)
@@ -90,4 +96,23 @@ internal class ArgsReaderTest {
9096
@ArgsItem(defaultValue = "false", alias = ["debug", "d"])
9197
val debug: Boolean
9298
)
99+
100+
@Test
101+
fun test5() {
102+
val argsBean = ArgsReader(
103+
arrayOf("-d"),
104+
Test5Property::class).getArgsBean(Test5Property::class)
105+
assertEquals(argsBean.workDirectory, null)
106+
}
107+
108+
object Test5Property {
109+
/**
110+
* 工作目录
111+
*/
112+
@ArgsItem(defaultValue = "", nullable = true, alias = ["work-dir"])
113+
var workDirectory: File? = null
114+
115+
}
116+
117+
93118
}

gradlew

100644100755
File mode changed.

gradlew.bat

100644100755
File mode changed.

0 commit comments

Comments
 (0)