From f7d5d57aae4de64538e3d4446bb949e1b9b0cfbe Mon Sep 17 00:00:00 2001 From: Ivan Migalev Date: Thu, 17 Jun 2021 21:09:40 +0700 Subject: [PATCH 1/3] RdFault: add @Nls annotations --- .../com/jetbrains/rd/util/reactive/RdFault.kt | 12 +++++------ .../com/jetbrains/rd/util/reactive/RdFault.kt | 19 ++++++++++++++++++ .../com/jetbrains/rd/util/reactive/RdFault.kt | 20 +++++++++++++++++++ 3 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt create mode 100644 rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt diff --git a/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt index a57dc408a..35e18c5c4 100644 --- a/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt +++ b/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -1,12 +1,12 @@ package com.jetbrains.rd.util.reactive import com.jetbrains.rd.util.ExecutionException -import com.jetbrains.rd.util.getThrowableText +expect class RdFault constructor(reasonTypeFqn: String, reasonMessage: String, reasonAsText: String, reason: Throwable? = null) : + ExecutionException { + val reasonTypeFqn: String + val reasonMessage: String + val reasonAsText: String -class RdFault constructor(val reasonTypeFqn: String, val reasonMessage: String, val reasonAsText: String, reason: Throwable? = null) - : ExecutionException(reasonMessage + if (reason == null) ", reason: $reasonAsText" else "", reason) { - - constructor (reason: Throwable) : this (reason::class.simpleName?:"", reason.message ?: "-- no message --", reason.getThrowableText(), reason) { - } + constructor(reason: Throwable) } \ No newline at end of file diff --git a/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt new file mode 100644 index 000000000..455694335 --- /dev/null +++ b/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -0,0 +1,19 @@ +package com.jetbrains.rd.util.reactive + +import com.jetbrains.rd.util.ExecutionException +import com.jetbrains.rd.util.getThrowableText + +actual class RdFault actual constructor( + actual val reasonTypeFqn: String, + actual val reasonMessage: String, + actual val reasonAsText: String, + reason: Throwable? +) : ExecutionException(reasonMessage + if (reason == null) ", reason: $reasonAsText" else "", reason) { + + actual constructor (reason: Throwable) : this( + reason::class.simpleName ?: "", + reason.message ?: "-- no message --", + reason.getThrowableText(), + reason + ) +} \ No newline at end of file diff --git a/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt new file mode 100644 index 000000000..a4032378f --- /dev/null +++ b/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -0,0 +1,20 @@ +package com.jetbrains.rd.util.reactive + +import com.jetbrains.rd.util.ExecutionException +import com.jetbrains.rd.util.getThrowableText +import org.jetbrains.annotations.Nls + +actual class RdFault actual constructor( + actual val reasonTypeFqn: String, + @Nls actual val reasonMessage: String, + @Nls actual val reasonAsText: String, + reason: Throwable? +) : ExecutionException(reasonMessage + if (reason == null) ", reason: $reasonAsText" else "", reason) { + + actual constructor (reason: Throwable) : this( + reason::class.simpleName ?: "", + reason.message ?: "-- no message --", + reason.getThrowableText(), + reason + ) +} \ No newline at end of file From b9df9f8e708c379f15cfc4d467c2b7897058c9b5 Mon Sep 17 00:00:00 2001 From: Ivan Migalev Date: Sat, 19 Jun 2021 18:38:03 +0700 Subject: [PATCH 2/3] RdFault: improve localization design --- .../com/jetbrains/rd/util/reactive/RdFault.kt | 15 ++++++++++++--- .../com/jetbrains/rd/util/reactive/RdFault.kt | 13 ++++++++++++- .../com/jetbrains/rd/util/reactive/RdFault.kt | 19 +++++++++++++++---- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt index 35e18c5c4..0f112f2cd 100644 --- a/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt +++ b/rd-kt/rd-core/src/commonMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -2,11 +2,20 @@ package com.jetbrains.rd.util.reactive import com.jetbrains.rd.util.ExecutionException -expect class RdFault constructor(reasonTypeFqn: String, reasonMessage: String, reasonAsText: String, reason: Throwable? = null) : - ExecutionException { +expect class RdFault constructor( + reasonTypeFqn: String, + reasonMessage: String, + localizedReasonMessage: String, + reasonAsText: String, + reason: Throwable? = null +) : ExecutionException { val reasonTypeFqn: String val reasonMessage: String + val localizedReasonMessage: String val reasonAsText: String constructor(reason: Throwable) -} \ No newline at end of file + + @Deprecated("Use the override with localizedReasonMessage") + constructor(reasonTypeFqn: String, reasonMessage: String, reasonAsText: String, reason: Throwable? = null) +} diff --git a/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt index 455694335..ac8d1b068 100644 --- a/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt +++ b/rd-kt/rd-core/src/jsMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -6,6 +6,7 @@ import com.jetbrains.rd.util.getThrowableText actual class RdFault actual constructor( actual val reasonTypeFqn: String, actual val reasonMessage: String, + actual val localizedReasonMessage: String, actual val reasonAsText: String, reason: Throwable? ) : ExecutionException(reasonMessage + if (reason == null) ", reason: $reasonAsText" else "", reason) { @@ -13,7 +14,17 @@ actual class RdFault actual constructor( actual constructor (reason: Throwable) : this( reason::class.simpleName ?: "", reason.message ?: "-- no message --", + reason.message ?: "-- no message --", reason.getThrowableText(), reason ) -} \ No newline at end of file + + @Deprecated("Use the override with localizedReasonMessage") + actual constructor(reasonTypeFqn: String, reasonMessage: String, reasonAsText: String, reason: Throwable?) : this( + reasonTypeFqn, + reasonMessage, + reasonMessage, + reasonAsText, + reason + ) +} diff --git a/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt b/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt index a4032378f..696e4fb3d 100644 --- a/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt +++ b/rd-kt/rd-core/src/jvmMain/kotlin/com/jetbrains/rd/util/reactive/RdFault.kt @@ -6,15 +6,26 @@ import org.jetbrains.annotations.Nls actual class RdFault actual constructor( actual val reasonTypeFqn: String, - @Nls actual val reasonMessage: String, - @Nls actual val reasonAsText: String, + actual val reasonMessage: String, + @field:Nls @get:Nls @Nls actual val localizedReasonMessage: String, + actual val reasonAsText: String, reason: Throwable? ) : ExecutionException(reasonMessage + if (reason == null) ", reason: $reasonAsText" else "", reason) { - actual constructor (reason: Throwable) : this( + actual constructor(reason: Throwable) : this( reason::class.simpleName ?: "", reason.message ?: "-- no message --", + reason.localizedMessage ?: reason.message ?: "-- no message --", reason.getThrowableText(), reason ) -} \ No newline at end of file + + @Deprecated("Use the override with localizedReasonMessage") + actual constructor(reasonTypeFqn: String, reasonMessage: String, reasonAsText: String, reason: Throwable?) : this( + reasonTypeFqn, + reasonMessage, + reasonMessage, + reasonAsText, + reason + ) +} From b1b212ccacdd1579702a174e3512ba16cfc1ad50 Mon Sep 17 00:00:00 2001 From: Ivan Migalev Date: Sat, 19 Jun 2021 22:51:35 +0700 Subject: [PATCH 3/3] [DEBUG] Trying to diagnose test failure --- .../rd/generator/test/cases/generator/example/ExampleModel.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/rd-kt/rd-gen/src/test/kotlin/com/jetbrains/rd/generator/test/cases/generator/example/ExampleModel.kt b/rd-kt/rd-gen/src/test/kotlin/com/jetbrains/rd/generator/test/cases/generator/example/ExampleModel.kt index c47cde972..372cdb740 100644 --- a/rd-kt/rd-gen/src/test/kotlin/com/jetbrains/rd/generator/test/cases/generator/example/ExampleModel.kt +++ b/rd-kt/rd-gen/src/test/kotlin/com/jetbrains/rd/generator/test/cases/generator/example/ExampleModel.kt @@ -136,6 +136,7 @@ class TestExample { classloader.scanForResourcesContaining("com.jetbrains.rd.util") + classloader.scanForResourcesContaining("org.jetbrains.annotations") + rdgen.verbose *= true rdgen.classpath *= rdFrameworkClasspath.joinToString(File.pathSeparator) val generatedSources = File(kotlinGeneratedSourcesDir).walk().toList()