diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 95d6479..e2882f9 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - java_version: ['17', '20'] + java_version: ['17', '21'] os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v4 diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 3371446..4e6a53a 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,7 +6,7 @@ - + diff --git a/build.gradle.kts b/build.gradle.kts index 806d638..cd346ad 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,12 +7,12 @@ plugins { jacoco signing id("org.cadixdev.licenser") version "0.6.1" - id("me.qoomon.git-versioning") version "6.4.3" + id("me.qoomon.git-versioning") version "6.4.4" id("com.gorylenko.gradle-git-properties") version "2.4.2" - id("io.freefair.lombok") version "8.6" - id("io.freefair.javadoc-links") version "8.6" - id("io.freefair.javadoc-utf-8") version "8.6" - id("io.freefair.maven-central.validate-poms") version "8.6" + id("io.freefair.lombok") version "8.11" + id("io.freefair.javadoc-links") version "8.11" + id("io.freefair.javadoc-utf-8") version "8.11" + id("io.freefair.maven-central.validate-poms") version "8.11" id("com.github.ben-manes.versions") version "0.51.0" id("ru.vyarus.pom") version "3.0.0" id("io.codearte.nexus-staging") version "0.30.0" @@ -40,13 +40,11 @@ repositories { mavenCentral() } -val junitVersion = "5.7.0" - dependencies { - compileOnly("com.github.spotbugs:spotbugs-annotations:4.8.5") - testImplementation("org.junit.jupiter", "junit-jupiter-api", junitVersion) - testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine", junitVersion) - testImplementation("org.assertj", "assertj-core", "3.18.1") + compileOnly("com.github.spotbugs", "spotbugs-annotations", "4.8.6") + testImplementation("org.junit.jupiter", "junit-jupiter-api", "5.11.4") + testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine", "5.11.4") + testImplementation("org.assertj", "assertj-core", "3.27.0") } java { @@ -81,7 +79,7 @@ tasks.check { tasks.jacocoTestReport { reports { xml.required.set(true) - xml.outputLocation.set(File("$buildDir/reports/jacoco/test/jacoco.xml")) + xml.outputLocation.set(layout.buildDirectory.file("reports/jacoco/test/jacoco.xml")) } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 509c4a2..18362b7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/com/github/_1c_syntax/utils/Absolute.java b/src/main/java/com/github/_1c_syntax/utils/Absolute.java index c81007f..9871ebb 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Absolute.java +++ b/src/main/java/com/github/_1c_syntax/utils/Absolute.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later @@ -40,6 +40,12 @@ @UtilityClass public final class Absolute { + /** + * Получение URI из строки + * + * @param uri - строковое представление URI + * @return - полученное значение + */ public static URI uri(@NonNull String uri) { try { var url = new URL(uri); @@ -60,28 +66,64 @@ public static URI uri(@NonNull String uri) { } } + /** + * Получение абсолютного URI из URI с валидацией + * + * @param uri - исходный URI + * @return - полученное значение + */ public static URI uri(@NonNull URI uri) { var decodedUri = URI.create(uri.getScheme() + ":" + encodePath(uri.getSchemeSpecificPart())); return checkFileAuthorityAndReturnURI(decodedUri); } + /** + * Получение URI файла + * + * @param file - исходный файл + * @return - полученное значение + */ public static URI uri(@NonNull File file) { return uri(path(file).toUri()); } + /** + * Получение пути (path) из строки + * + * @param path - строковое представление пути + * @return - полученное значение + */ public static Path path(@NonNull String path) { return path(Path.of(path)); } + /** + * Получение пути (path) из URI + * + * @param uri - исходное значение URI + * @return - полученное значение + */ public static Path path(@NonNull URI uri) { return path(Path.of(uri(uri))); } + /** + * Получение абсолютного пути (path) из Path + * + * @param path - исходное значение пути + * @return - полученное значение + */ public static Path path(@NonNull Path path) { return path(path.toFile()); } + /** + * Получение пути файла + * + * @param file - исходный файл + * @return - полученное значение + */ @SneakyThrows public static Path path(@NonNull File file) { return file.getCanonicalFile().toPath().toAbsolutePath(); diff --git a/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java b/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java index de18ff9..25840b2 100644 --- a/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java +++ b/src/main/java/com/github/_1c_syntax/utils/CaseInsensitivePattern.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java b/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java index 7cf86a2..35d98c3 100644 --- a/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java +++ b/src/main/java/com/github/_1c_syntax/utils/GenericInterner.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later @@ -25,17 +25,26 @@ import java.util.concurrent.ConcurrentHashMap; /** - * Реализация интернера + * Реализация универсального интернера */ public class GenericInterner { private final Map map = new ConcurrentHashMap<>(); + /** + * Метод интернирования значения + * + * @param object Интернируемый объект + * @return значение из кеша + */ public T intern(T object) { var exist = map.putIfAbsent(object, object); return (exist == null) ? object : exist; } + /** + * Очистка кеша интернера + */ public void clear() { map.clear(); } diff --git a/src/main/java/com/github/_1c_syntax/utils/Lazy.java b/src/main/java/com/github/_1c_syntax/utils/Lazy.java index 32c5b5b..194c87e 100644 --- a/src/main/java/com/github/_1c_syntax/utils/Lazy.java +++ b/src/main/java/com/github/_1c_syntax/utils/Lazy.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/main/java/com/github/_1c_syntax/utils/StringInterner.java b/src/main/java/com/github/_1c_syntax/utils/StringInterner.java index 5954f27..9d03a52 100644 --- a/src/main/java/com/github/_1c_syntax/utils/StringInterner.java +++ b/src/main/java/com/github/_1c_syntax/utils/StringInterner.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java index ce752ea..2a60543 100644 --- a/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/AbsoluteTest.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java b/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java index 25219c2..8986bff 100644 --- a/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java +++ b/src/test/java/com/github/_1c_syntax/utils/StringInternerTest.java @@ -1,7 +1,7 @@ /* * This file is a part of 1c-syntax utils. * - * Copyright (c) 2018-2024 + * Copyright (c) 2018-2025 * Alexey Sosnoviy , Nikita Fedkin and contributors * * SPDX-License-Identifier: LGPL-3.0-or-later