Skip to content

Commit

Permalink
Fix type cast issue in transport action call (#223)
Browse files Browse the repository at this point in the history
* Change generic type to ActionRequest to avoid classloader issue

Signed-off-by: Chen Dai <daichen@amazon.com>

* Remove unused import

Signed-off-by: Chen Dai <daichen@amazon.com>

* Add UT for send notification API

Signed-off-by: Chen Dai <daichen@amazon.com>

* Fix UT failure due to coroutine

Signed-off-by: Chen Dai <daichen@amazon.com>

* Fix checkstyle

Signed-off-by: Chen Dai <daichen@amazon.com>

* Add UT for all other APIs

Signed-off-by: Chen Dai <daichen@amazon.com>

* Add UT for all other APIs

Signed-off-by: Chen Dai <daichen@amazon.com>

* Fix checkstyle

Signed-off-by: Chen Dai <daichen@amazon.com>
  • Loading branch information
dai-chen authored Jul 20, 2021
1 parent 34f4d35 commit fe8b984
Show file tree
Hide file tree
Showing 12 changed files with 251 additions and 13 deletions.
8 changes: 8 additions & 0 deletions notifications/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,19 @@ dependencies {
'org.assertj:assertj-core:3.19.0',
'org.mockito:mockito-junit-jupiter:3.10.0',
'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0',
'io.mockk:mockk:1.11.0',
'io.mockk:mockk-common:1.11.0',
'io.mockk:mockk-dsl:1.11.0',
'io.mockk:mockk-dsl-jvm:1.11.0',
'io.mockk:mockk-agent-api:1.11.0',
'io.mockk:mockk-agent-common:1.11.0',
'io.mockk:mockk-agent-jvm:1.11.0',
"org.junit.jupiter:junit-jupiter-api:${junit_version}"
)
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junit_version}")
testCompile "org.opensearch.test:framework:${opensearch_version}"
testCompile "org.jetbrains.kotlin:kotlin-test:${kotlin_version}"
testCompile "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}" // required by mockk
testCompile "org.mockito:mockito-core:3.10.0"
testCompile 'com.google.code.gson:gson:2.8.7'
testImplementation 'org.springframework.integration:spring-integration-mail:5.5.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class CreateNotificationConfigAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: CreateNotificationConfigRequest,
request: ActionRequest,
listener: ActionListener<CreateNotificationConfigResponse>
) {
val transformedRequest = request as? CreateNotificationConfigRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class DeleteNotificationConfigAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: DeleteNotificationConfigRequest,
request: ActionRequest,
listener: ActionListener<DeleteNotificationConfigResponse>
) {
val transformedRequest = request as? DeleteNotificationConfigRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -65,7 +66,7 @@ internal class GetFeatureChannelListAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: GetFeatureChannelListRequest,
request: ActionRequest,
listener: ActionListener<GetFeatureChannelListResponse>
) {
val transformedRequest = request as? GetFeatureChannelListRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class GetNotificationConfigAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: GetNotificationConfigRequest,
request: ActionRequest,
listener: ActionListener<GetNotificationConfigResponse>
) {
val transformedRequest = request as? GetNotificationConfigRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class GetNotificationEventAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: GetNotificationEventRequest,
request: ActionRequest,
listener: ActionListener<GetNotificationEventResponse>
) {
val transformedRequest = request as? GetNotificationEventRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class GetPluginFeaturesAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: GetPluginFeaturesRequest,
request: ActionRequest,
listener: ActionListener<GetPluginFeaturesResponse>
) {
val transformedRequest = request as? GetPluginFeaturesRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ internal abstract class PluginBaseAction<Request : ActionRequest, Response : Act
transportService: TransportService,
val client: Client,
actionFilters: ActionFilters,
requestReader: Writeable.Reader<Request>
) : HandledTransportAction<Request, Response>(name, transportService, actionFilters, requestReader) {
requestReader: Writeable.Reader<ActionRequest>
) : HandledTransportAction<ActionRequest, Response>(name, transportService, actionFilters, requestReader) {
companion object {
private val log by logger(PluginBaseAction::class.java)
private val scope: CoroutineScope = CoroutineScope(Dispatchers.IO)
Expand All @@ -66,18 +66,18 @@ internal abstract class PluginBaseAction<Request : ActionRequest, Response : Act
/**
* {@inheritDoc}
*/
@Suppress("TooGenericExceptionCaught")
@Suppress("TooGenericExceptionCaught", "UNCHECKED_CAST")
override fun doExecute(
task: Task?,
request: Request,
request: ActionRequest,
listener: ActionListener<Response>
) {
val userStr: String? =
client.threadPool().threadContext.getTransient<String>(OPENSEARCH_SECURITY_USER_INFO_THREAD_CONTEXT)
val user: User? = User.parse(userStr)
scope.launch {
try {
listener.onResponse(executeRequest(request, user))
listener.onResponse(executeRequest(request as Request, user))
} catch (exception: OpenSearchStatusException) {
log.warn("$LOG_PREFIX:OpenSearchStatusException:", exception)
listener.onFailure(exception)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class SendNotificationAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: SendNotificationRequest,
request: ActionRequest,
listener: ActionListener<SendNotificationResponse>
) {
val transformedRequest = request as? SendNotificationRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
package org.opensearch.notifications.action

import org.opensearch.action.ActionListener
import org.opensearch.action.ActionRequest
import org.opensearch.action.support.ActionFilters
import org.opensearch.client.Client
import org.opensearch.common.inject.Inject
Expand Down Expand Up @@ -63,7 +64,7 @@ internal class UpdateNotificationConfigAction @Inject constructor(
*/
override fun doExecute(
task: Task?,
request: UpdateNotificationConfigRequest,
request: ActionRequest,
listener: ActionListener<UpdateNotificationConfigResponse>
) {
val transformedRequest = request as? UpdateNotificationConfigRequest
Expand Down
Loading

0 comments on commit fe8b984

Please sign in to comment.