DEV Community

Query Filter
Query Filter

Posted on

bridge3

// 1. Уточняем путь и настройки
def profilerConfig = [
    targetClassesFile: file("${projectDir}/profiler_targets.txt"),
    intervalSeconds: 60,
    agentJar: file("$buildDir/libs/ProfilerAgent.jar")
]

// 2. Задача "предохранитель" (Fail-safe check)
task validateProfilerConfig {
    group = "verification"
    description = "Checks if the profiler target file exists before starting the app."

    doFirst {
        if (!profilerConfig.targetClassesFile.exists()) {
            throw new GradleException(
                "\n" + ("=" * 60) +
                "\n[PROFILER ERROR]: Target file NOT FOUND!" +
                "\nPlease create: ${profilerConfig.targetClassesFile.absolutePath}" +
                "\nAdd one fully qualified class name per line." +
                "\n" + ("=" * 60)
            )
        }

        def lines = profilerConfig.targetClassesFile.readLines().findAll { it.trim() && !it.startsWith("#") }
        if (lines.isEmpty()) {
            logger.warn("\n" + ("!" * 60) +
                "\n[PROFILER WARNING]: Target file is EMPTY!" +
                "\nNo classes will be instrumented." +
                "\n" + ("!" * 60))
        } else {
            println "[PROFILER]: Validated. Found ${lines.size()} classes to track."
        }
    }
}

// 3. Обновляем зависимости основной задачи
spawnBridgeWithProfiler.dependsOn validateProfilerConfig
Enter fullscreen mode Exit fullscreen mode

Top comments (0)