From 261ac5e5bec8939fca50ffd20bcf43f344c8296f Mon Sep 17 00:00:00 2001 From: iryabov Date: Thu, 11 Dec 2025 13:33:02 +0100 Subject: [PATCH 1/2] fix: add BuildPayload and InstancePayload classes for coordination with the Backend API --- .../drill/agent/transport/BuildPayload.kt | 16 ++++++++++++++ .../drill/agent/transport/InstancePayload.kt | 14 ++++++++++++ .../agent/transport/JvmModuleMessageSender.kt | 22 +++++++++++++++---- 3 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt create mode 100644 java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt diff --git a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt new file mode 100644 index 00000000..5c5b2e48 --- /dev/null +++ b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt @@ -0,0 +1,16 @@ +package com.epam.drill.agent.transport + +import com.epam.drill.agent.common.transport.AgentMessage +import kotlinx.serialization.Serializable + +@Serializable +class BuildPayload( + val groupId: String, + val appId: String, + val commitSha: String? = null, + val buildVersion: String? = null, + val branch: String? = null, + val commitDate: String? = null, + val commitMessage: String? = null, + val commitAuthor: String? = null +) : AgentMessage() \ No newline at end of file diff --git a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt new file mode 100644 index 00000000..ee0ca5ca --- /dev/null +++ b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt @@ -0,0 +1,14 @@ +package com.epam.drill.agent.transport + +import com.epam.drill.agent.common.transport.AgentMessage +import kotlinx.serialization.Serializable + +@Serializable +class InstancePayload( + val groupId: String, + val appId: String, + val instanceId: String, + val commitSha: String? = null, + val buildVersion: String? = null, + val envId: String? = null, +): AgentMessage() \ No newline at end of file diff --git a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/JvmModuleMessageSender.kt b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/JvmModuleMessageSender.kt index 62b4c39f..8150a767 100644 --- a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/JvmModuleMessageSender.kt +++ b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/JvmModuleMessageSender.kt @@ -29,6 +29,7 @@ import com.epam.drill.agent.common.transport.AgentMessageDestination import com.epam.drill.agent.common.transport.AgentMessageSender import kotlinx.serialization.InternalSerializationApi import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable actual object JvmModuleMessageSender : AgentMessageSender { @@ -43,16 +44,28 @@ actual object JvmModuleMessageSender : AgentMessageSender { actual fun sendAgentMetadata() { messageSender.send( AgentMessageDestination("PUT", "instances"), - Configuration.agentMetadata, - AgentMetadata.serializer() + InstancePayload( + groupId = Configuration.agentMetadata.groupId, + appId = Configuration.agentMetadata.appId, + instanceId = Configuration.agentMetadata.instanceId, + commitSha = Configuration.agentMetadata.commitSha, + buildVersion = Configuration.agentMetadata.buildVersion, + envId = Configuration.agentMetadata.envId + ), + InstancePayload.serializer() ) } fun sendBuildMetadata() { messageSender.send( AgentMessageDestination("PUT", "builds"), - Configuration.agentMetadata, - AgentMetadata.serializer() + BuildPayload( + groupId = Configuration.agentMetadata.groupId, + appId = Configuration.agentMetadata.appId, + commitSha = Configuration.agentMetadata.commitSha, + buildVersion = Configuration.agentMetadata.buildVersion + ), + BuildPayload.serializer() ) } @@ -81,6 +94,7 @@ actual object JvmModuleMessageSender : AgentMessageSender { "DIRECT" -> SimpleAgentMessageSender(transport, serializer, mapper).also { logger.info { "Using DIRECT message sending mode." } } + "QUEUED" -> QueuedAgentMessageSender( transport, serializer, mapper, queue, maxRetries = Configuration.parameters[ParameterDefinitions.MESSAGE_MAX_RETRIES] From 4b005ac87484bf31319e2a9fd7ec49f94c600d3f Mon Sep 17 00:00:00 2001 From: iryabov Date: Thu, 11 Dec 2025 13:40:30 +0100 Subject: [PATCH 2/2] chore: add licences --- .../epam/drill/agent/transport/BuildPayload.kt | 15 +++++++++++++++ .../epam/drill/agent/transport/InstancePayload.kt | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt index 5c5b2e48..98a3cfdb 100644 --- a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt +++ b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/BuildPayload.kt @@ -1,3 +1,18 @@ +/** + * Copyright 2020 - 2022 EPAM Systems + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.epam.drill.agent.transport import com.epam.drill.agent.common.transport.AgentMessage diff --git a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt index ee0ca5ca..e00724be 100644 --- a/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt +++ b/java-agent/src/jvmMain/kotlin/com/epam/drill/agent/transport/InstancePayload.kt @@ -1,3 +1,18 @@ +/** + * Copyright 2020 - 2022 EPAM Systems + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.epam.drill.agent.transport import com.epam.drill.agent.common.transport.AgentMessage