From bcc925993f31eb64e62d555d96579de653b004d5 Mon Sep 17 00:00:00 2001 From: Vladislav Yaroshchuk Date: Fri, 31 Dec 2021 04:20:05 +0300 Subject: [PATCH] [aether-resolver] IJI-781 Create base classes for retries injection (cherry picked from commit 4bbee1dddba0504bd2edb0a7915d66fdeae66fba) IJ-MR-20326 GitOrigin-RevId: c2c0b8fd40a16689ef61f73135b2144a4cbc742d --- .../jetbrains/idea/maven/aether/Retry.java | 20 +++++++++++++++++++ .../idea/maven/aether/ThrowingSupplier.java | 7 +++++++ 2 files changed, 27 insertions(+) create mode 100644 aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/Retry.java create mode 100644 aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/ThrowingSupplier.java diff --git a/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/Retry.java b/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/Retry.java new file mode 100644 index 000000000000..0cb9db0dae51 --- /dev/null +++ b/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/Retry.java @@ -0,0 +1,20 @@ +// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.idea.maven.aether; + +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; + +/** + * Common retry interface for aether dependency resolver. + */ +@FunctionalInterface +public interface Retry { + /** + * @param supplier Supplies that does some possibly throwing work. + * @param logger Messages logger. + * @param Supplier result type. + * @return Result from supplier. + * @throws Exception An error the job thrown if attempts limit exceeded. + */ + R retry(@NotNull ThrowingSupplier supplier, @NotNull Logger logger) throws Exception; +} \ No newline at end of file diff --git a/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/ThrowingSupplier.java b/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/ThrowingSupplier.java new file mode 100644 index 000000000000..6aef95e9c625 --- /dev/null +++ b/aether-dependency-resolver/src/org/jetbrains/idea/maven/aether/ThrowingSupplier.java @@ -0,0 +1,7 @@ +// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.idea.maven.aether; + +@FunctionalInterface +interface ThrowingSupplier { + R get() throws Exception; +}