Robert Jaros
08/05/2019, 2:46 PMsdeleuze
08/05/2019, 2:46 PMRobert Jaros
08/05/2019, 3:00 PMsdeleuze
08/05/2019, 3:02 PMRobert Jaros
08/05/2019, 3:14 PMRobert Jaros
08/05/2019, 3:14 PMRobert Jaros
08/05/2019, 3:17 PM@Service
class DokumentService {
suspend fun test() {
println("pre test")
delay(5000)
println("post test")
}
}
sdeleuze
08/05/2019, 3:19 PMRobert Jaros
08/05/2019, 3:19 PM@Service
@WebService(...)
class PeupImpl(
private val dokumentService: DokumentService
) : Peup, CoroutineScope by CoroutineScope(Dispatchers.Default) {
override fun oczekujaceDokumentyAsync(
request: OczekujaceDokumentyRequestType,
asyncHandler: AsyncHandler<OczekujaceDokumentyResponseType>
): Future<*> {
return asyncWS(asyncHandler) {
dokumentService.test()
delay(10000)
OczekujaceDokumentyResponseType().apply { liczba = 2 }
}
}
}
Robert Jaros
08/05/2019, 3:20 PMfun <T> CoroutineScope.asyncWS(asyncHandler: AsyncHandler<T>, block: suspend () -> T): ServerAsyncResponse<T> {
val result = ServerAsyncResponse<T>()
launch {
val v = block()
result.set(v)
asyncHandler.handleResponse(result)
}
return result
}
Robert Jaros
08/05/2019, 3:23 PMRobert Jaros
08/05/2019, 3:23 PMRobert Jaros
08/05/2019, 3:24 PMsdeleuze
08/05/2019, 3:25 PMsdeleuze
08/05/2019, 3:25 PMsdeleuze
08/05/2019, 3:26 PMRobert Jaros
08/05/2019, 3:28 PMsdeleuze
08/05/2019, 3:30 PMsdeleuze
08/05/2019, 3:32 PMRobert Jaros
08/05/2019, 3:37 PMsdeleuze
08/05/2019, 3:38 PMsdeleuze
08/05/2019, 3:40 PMCoroutineScope by CoroutineScope
usage pattern is not actively supported to feel free to create an issue at Spring Framework level if you see some issues.Robert Jaros
08/05/2019, 3:40 PM