Skip to content

Commit 4c37a71

Browse files
authored
Merge pull request #1065 from simple-robot/try-add-Blocking-for-blockingapi
为生成的阻塞桥接函数增加标记 `org.jetbrains.annotations.Blocking` 注解
2 parents 303adc2 + 4bac88e commit 4c37a71

File tree

4 files changed

+41
-9
lines changed

4 files changed

+41
-9
lines changed

buildSrc/src/main/kotlin/P.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fun isSnapshot(): Boolean = _isSnapshot
4747
@Suppress("MemberVisibilityCanBePrivate")
4848
sealed class P(override val group: String) : ProjectDetail() {
4949
companion object {
50-
const val VERSION = "4.12.0"
50+
const val VERSION = "4.12.1"
5151
const val NEXT_VERSION = "4.12.1"
5252
const val SNAPSHOT_VERSION = "$VERSION-SNAPSHOT"
5353
const val NEXT_SNAPSHOT_VERSION = "$NEXT_VERSION-SNAPSHOT"

buildSrc/src/main/kotlin/SuspendTransformPluginConfigs.kt

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ object SuspendTransformPlugins {
3939
const val API4J_NAME: String = "Api4J"
4040
const val API4JS_NAME: String = "Api4Js"
4141

42+
const val JB_BLOCKING_ANNOTATION_PACKAGE = "org.jetbrains.annotations"
43+
const val JB_BLOCKING_ANNOTATION_NAME = "Blocking"
44+
4245
const val RUN_IN_BLOCKING_FUN_NAME: String = "$\$runInBlocking"
4346
const val RUN_IN_ASYNC_FUN_NAME: String = "$\$runInAsyncNullable"
4447
const val AS_RESERVE_FUN_NAME: String = "$\$asReserve"
@@ -61,7 +64,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
6164
}
6265
}
6366

64-
fun TransformerSpec.includeApi4J(clear: Boolean = true) {
67+
fun TransformerSpec.includeApi4J(clear: Boolean = true, blocking: Boolean = false) {
6568
if (clear) {
6669
syntheticFunctionIncludeAnnotations.clear()
6770
}
@@ -72,6 +75,14 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
7275
}
7376
includeProperty.set(true)
7477
}
78+
if (blocking) {
79+
addSyntheticFunctionIncludeAnnotation {
80+
classInfo {
81+
packageName.set(SuspendTransformPlugins.JB_BLOCKING_ANNOTATION_PACKAGE)
82+
className.set(SuspendTransformPlugins.JB_BLOCKING_ANNOTATION_NAME)
83+
}
84+
}
85+
}
7586
}
7687

7788
fun TransformerSpec.blockingFunction() {
@@ -144,6 +155,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
144155
transformReturnType: (ClassInfoSpec.() -> Unit)?,
145156
transformReturnTypeGeneric: Boolean,
146157
copyExcludes: List<ClassInfo>,
158+
blocking: Boolean = false,
147159
) {
148160
addJvm {
149161
markSuspendTrans(
@@ -166,7 +178,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
166178
}
167179

168180
function()
169-
includeApi4J()
181+
includeApi4J(blocking = blocking)
170182

171183
copyAnnotationsToSyntheticFunction.set(true)
172184

@@ -188,6 +200,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
188200
transformReturnType: (ClassInfoSpec.() -> Unit)?,
189201
transformReturnTypeGeneric: Boolean,
190202
copyExcludes: List<ClassInfo>,
203+
blocking: Boolean = false,
191204
) {
192205
addJvm {
193206
markSuspendTransProperty(
@@ -210,7 +223,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
210223
}
211224

212225
function()
213-
includeApi4J()
226+
includeApi4J(blocking = blocking)
214227

215228
copyAnnotationsToSyntheticFunction.set(true)
216229
copyAnnotationsToSyntheticProperty.set(true)
@@ -234,6 +247,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
234247
transformReturnType = null,
235248
transformReturnTypeGeneric = false,
236249
copyExcludes = jvmBlockingTransformer.copyAnnotationExcludes,
250+
blocking = true,
237251
)
238252

239253
// @SuspendTrans for Async
@@ -276,6 +290,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
276290
transformReturnType = null,
277291
transformReturnTypeGeneric = false,
278292
copyExcludes = jvmBlockingTransformer.copyAnnotationExcludes,
293+
blocking = true,
279294
)
280295

281296
// @SuspendTrans for Async
@@ -317,7 +332,7 @@ fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
317332

318333
// @JvmBlocking
319334
addJvmBlocking {
320-
includeApi4J()
335+
includeApi4J(blocking = true)
321336
excludeTransMarks()
322337
blockingFunction()
323338
}

simbot-gradles/simbot-gradle-suspendtransforms/api/simbot-gradle-suspendtransforms.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ public final class love/forte/simbot/gradle/suspendtransforms/SuspendTransformPl
33
public static final field API4J_NAME Ljava/lang/String;
44
public static final field AS_RESERVE_FUN_NAME Ljava/lang/String;
55
public static final field INSTANCE Llove/forte/simbot/gradle/suspendtransforms/SuspendTransformPlugins;
6+
public static final field JB_BLOCKING_ANNOTATION_NAME Ljava/lang/String;
7+
public static final field JB_BLOCKING_ANNOTATION_PACKAGE Ljava/lang/String;
68
public static final field OPT_ANNOTATION_PACKAGE Ljava/lang/String;
79
public static final field RUN_IN_ASYNC_FUN_NAME Ljava/lang/String;
810
public static final field RUN_IN_BLOCKING_FUN_NAME Ljava/lang/String;

simbot-gradles/simbot-gradle-suspendtransforms/src/main/kotlin/love/forte/simbot/gradle/suspendtransforms/SuspendTransformPlugins.kt

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ public object SuspendTransformPlugins {
5151
public const val API4J_NAME: String = "Api4J"
5252
public const val API4JS_NAME: String = "Api4Js"
5353

54+
public const val JB_BLOCKING_ANNOTATION_PACKAGE: String = "org.jetbrains.annotations"
55+
public const val JB_BLOCKING_ANNOTATION_NAME: String = "Blocking"
56+
5457
public const val RUN_IN_BLOCKING_FUN_NAME: String = "$\$runInBlocking"
5558
public const val RUN_IN_ASYNC_FUN_NAME: String = "$\$runInAsyncNullable"
5659
public const val AS_RESERVE_FUN_NAME: String = "$\$asReserve"
@@ -76,7 +79,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
7679
}
7780
}
7881

79-
fun TransformerSpec.includeApi4J(clear: Boolean = true) {
82+
fun TransformerSpec.includeApi4J(clear: Boolean = true, blocking: Boolean = false) {
8083
if (clear) {
8184
syntheticFunctionIncludeAnnotations.clear()
8285
}
@@ -87,6 +90,14 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
8790
}
8891
includeProperty.set(true)
8992
}
93+
if (blocking) {
94+
addSyntheticFunctionIncludeAnnotation {
95+
classInfo {
96+
packageName.set(SuspendTransformPlugins.JB_BLOCKING_ANNOTATION_PACKAGE)
97+
className.set(SuspendTransformPlugins.JB_BLOCKING_ANNOTATION_NAME)
98+
}
99+
}
100+
}
90101
}
91102

92103
fun TransformerSpec.blockingFunction() {
@@ -159,6 +170,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
159170
transformReturnType: (ClassInfoSpec.() -> Unit)?,
160171
transformReturnTypeGeneric: Boolean,
161172
copyExcludes: List<ClassInfo>,
173+
blocking: Boolean = false,
162174
) {
163175
addJvm {
164176
markSuspendTrans(
@@ -181,7 +193,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
181193
}
182194

183195
function()
184-
includeApi4J()
196+
includeApi4J(blocking = blocking)
185197

186198
copyAnnotationsToSyntheticFunction.set(true)
187199

@@ -203,6 +215,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
203215
transformReturnType: (ClassInfoSpec.() -> Unit)?,
204216
transformReturnTypeGeneric: Boolean,
205217
copyExcludes: List<ClassInfo>,
218+
blocking: Boolean = false,
206219
) {
207220
addJvm {
208221
markSuspendTransProperty(
@@ -225,7 +238,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
225238
}
226239

227240
function()
228-
includeApi4J()
241+
includeApi4J(blocking = blocking)
229242

230243
copyAnnotationsToSyntheticFunction.set(true)
231244
copyAnnotationsToSyntheticProperty.set(true)
@@ -249,6 +262,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
249262
transformReturnType = null,
250263
transformReturnTypeGeneric = false,
251264
copyExcludes = jvmBlockingTransformer.copyAnnotationExcludes,
265+
blocking = true,
252266
)
253267

254268
// @SuspendTrans for Async
@@ -291,6 +305,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
291305
transformReturnType = null,
292306
transformReturnTypeGeneric = false,
293307
copyExcludes = jvmBlockingTransformer.copyAnnotationExcludes,
308+
blocking = true,
294309
)
295310

296311
// @SuspendTrans for Async
@@ -332,7 +347,7 @@ public fun SuspendTransformPluginExtension.addSimbotJvmTransforms() {
332347

333348
// @JvmBlocking
334349
addJvmBlocking {
335-
includeApi4J()
350+
includeApi4J(blocking = true)
336351
excludeTransMarks()
337352
blockingFunction()
338353
}

0 commit comments

Comments
 (0)