All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.tinkoff.plugins.buildmetrics.jvm.labels.JvmLabels.kt Maven / Gradle / Ivy

The newest version!
package ru.tinkoff.plugins.buildmetrics.jvm.labels

import ru.tinkoff.plugins.buildmetrics.api.labels.Label
import ru.tinkoff.plugins.buildmetrics.utils.system.SystemProperties

internal fun jvmLabels(systemProperties: SystemProperties): List> = listOf(
    jvmVendorLabel(systemProperties),
    jvmSpecificationVersionLabel(systemProperties),
    javaRuntimeVersionLabel(systemProperties),
)

/**
 * Visible for testing.
 *
 * @return label with java vendor value.
 */
internal fun jvmVendorLabel(systemProperties: SystemProperties): Label = systemPropertyLabel(
    systemProperties = systemProperties,
    name = "java_vendor",
    property = "java.vendor",
)

/**
 * Visible for testing.
 *
 * @return label with java specification version value.
 */
internal fun jvmSpecificationVersionLabel(systemProperties: SystemProperties): Label = systemPropertyLabel(
    systemProperties = systemProperties,
    name = "java_specification_version",
    property = "java.specification.version",
)

/**
 * Visible for testing.
 *
 * @return label with java runtime version value.
 */
internal fun javaRuntimeVersionLabel(systemProperties: SystemProperties): Label = systemPropertyLabel(
    systemProperties = systemProperties,
    name = "java_runtime_version",
    property = "java.runtime.version",
)

private fun systemPropertyLabel(
    systemProperties: SystemProperties,
    name: String,
    property: String,
): Label = Label(
    name = name,
    value = systemProperties.property(property) ?: error("Failed to get property '$property'")
)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy