From cd2aa296725e3d25f59246521d9b17e285ae51e6 Mon Sep 17 00:00:00 2001 From: iryabov Date: Mon, 27 Oct 2025 12:55:43 +0100 Subject: [PATCH] refactor: remove classDescriptorsManager from CoverageManager and DrillInstrumenter EPMDJ-11150 --- .../epam/drill/agent/test2code/Test2Code.kt | 2 +- .../coverage/ClassDescriptorProvider.kt | 58 ------------------- .../test2code/coverage/CoverageManager.kt | 9 +-- .../test2code/coverage/Instrumentation.kt | 10 ---- 4 files changed, 4 insertions(+), 75 deletions(-) delete mode 100644 test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ClassDescriptorProvider.kt diff --git a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/Test2Code.kt b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/Test2Code.kt index 6cd8c4f2..6d014679 100644 --- a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/Test2Code.kt +++ b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/Test2Code.kt @@ -55,7 +55,7 @@ class Test2Code( internal val json = Json { encodeDefaults = true } private val coverageManager = DrillCoverageManager - private val instrumenter = DrillInstrumenter(coverageManager, coverageManager) + private val instrumenter = DrillInstrumenter(coverageManager) private val coverageSender: CoverageSender = IntervalCoverageSender( groupId = configuration.agentMetadata.groupId, appId = configuration.agentMetadata.appId, diff --git a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ClassDescriptorProvider.kt b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ClassDescriptorProvider.kt deleted file mode 100644 index 1c989da1..00000000 --- a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ClassDescriptorProvider.kt +++ /dev/null @@ -1,58 +0,0 @@ -/** - * 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.test2code.coverage - -import java.util.concurrent.ConcurrentHashMap -import mu.KotlinLogging - -/** - * Descriptor of class probes - * @param id a class ID - * @param name a full class name - * @param probeCount a number of probes in the class - */ -data class ClassDescriptor( - val id: ClassId, - val name: String, - val probeCount: Int, -) - -interface IClassDescriptorsProvider { - fun get(classId: ClassId): ClassDescriptor -} - -interface IClassDescriptorStorage { - fun add(descriptor: ClassDescriptor) -} - -interface IClassDescriptorsManager: IClassDescriptorsProvider, IClassDescriptorStorage - -class ConcurrentClassDescriptorsManager: IClassDescriptorsManager { - private val logger = KotlinLogging.logger("${this.javaClass.`package`}.${this.javaClass.name}") - - private val classDescriptors = ConcurrentHashMap() - - override fun add(descriptor: ClassDescriptor) { - classDescriptors[descriptor.id] = descriptor - } - - override fun get(classId: ClassId): ClassDescriptor { - val descriptor = classDescriptors[classId] - if (descriptor == null) logger.error { "Descriptor for class not found. classId: $$classId" } - return descriptor!! - } - -} diff --git a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/CoverageManager.kt b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/CoverageManager.kt index 49375b4b..03e1f321 100644 --- a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/CoverageManager.kt +++ b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/CoverageManager.kt @@ -18,11 +18,9 @@ package com.epam.drill.agent.test2code.coverage import com.epam.drill.agent.jacoco.AgentProbes open class CoverageManager( - private val classDescriptorsManager: IClassDescriptorsManager = ConcurrentClassDescriptorsManager(), private val threadCoverageRecorder: ICoverageRecorder = ThreadCoverageRecorder(), private val globalCoverageRecorder: GlobalCoverageRecorder = GlobalCoverageRecorder(), ) : IProbesProxy, - IClassDescriptorStorage by classDescriptorsManager, ICoverageRecorder by threadCoverageRecorder { override fun invoke( @@ -34,11 +32,10 @@ open class CoverageManager( val coverage: ContextCoverage = threadCoverageRecorder.getContext() ?: globalCoverageRecorder.getContext() val execDatum = coverage.execData.getOrPut(id) { - val classDescriptor = classDescriptorsManager.get(id) ExecDatum( - id = classDescriptor.id, - name = classDescriptor.name, - probes = AgentProbes(classDescriptor.probeCount), + id = id, + name = name, + probes = AgentProbes(probeCount), sessionId = coverage.context.sessionId, testId = coverage.context.testId ) diff --git a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/Instrumentation.kt b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/Instrumentation.kt index 93ce13be..2d900557 100644 --- a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/Instrumentation.kt +++ b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/Instrumentation.kt @@ -33,7 +33,6 @@ private val classCounter = AtomicInteger(0) class DrillInstrumenter( private val probesProxy: IProbesProxy, - private val classDescriptorsStorage: IClassDescriptorStorage ) : Instrumenter { private val logger = KotlinLogging.logger {} @@ -64,15 +63,6 @@ class DrillInstrumenter( InstrSupport.needsFrames(version) ) reader.accept(visitor, ClassReader.EXPAND_FRAMES) - - classDescriptorsStorage.add( - ClassDescriptor( - id = classId, - name = className, - probeCount = probeCount - ) - ) - writer.toByteArray() } catch (e: Exception) { logger.error { "Error instrumenting $className: ${e.message} ${e.stackTraceToString()}" }