@@ -3,11 +3,11 @@ package scala.build.compiler
3
3
import bloop .rifle .{BloopRifleConfig , BloopServer , BloopThreads }
4
4
import ch .epfl .scala .bsp4j .BuildClient
5
5
6
- import scala .build .Logger
7
6
import scala .build .errors .{BuildException , FetchingDependenciesError , Severity }
8
7
import scala .build .internal .Constants
9
8
import scala .build .internal .util .WarningMessages
10
9
import scala .build .options .BuildOptions
10
+ import scala .build .{Logger , retry }
11
11
import scala .concurrent .duration .DurationInt
12
12
import scala .util .Try
13
13
@@ -35,34 +35,36 @@ final class BloopCompilerMaker(
35
35
buildOptions
36
36
)
37
37
case Right (config) =>
38
- val createBuildServer =
39
- () =>
40
- BloopServer .buildServer(
41
- config,
42
- " scala-cli" ,
43
- Constants .version,
44
- workspace.toNIO,
45
- classesDir.toNIO,
46
- buildClient,
47
- threads,
48
- logger.bloopRifleLogger
49
- )
38
+ retry()(logger) {
39
+ val createBuildServer =
40
+ () =>
41
+ BloopServer .buildServer(
42
+ config,
43
+ " scala-cli" ,
44
+ Constants .version,
45
+ workspace.toNIO,
46
+ classesDir.toNIO,
47
+ buildClient,
48
+ threads,
49
+ logger.bloopRifleLogger
50
+ )
50
51
51
- val res = Try (new BloopCompiler (createBuildServer, 20 .seconds, strictBloopJsonCheck))
52
- .toEither
53
- .left.flatMap {
54
- case e if offline =>
55
- e.getCause match
56
- case _ : FetchingDependenciesError =>
57
- logger.diagnostic(
58
- WarningMessages .offlineModeBloopNotFound,
59
- Severity .Warning
60
- )
61
- SimpleScalaCompilerMaker (" java" , Nil )
62
- .create(workspace, classesDir, buildClient, logger, buildOptions)
63
- case _ => Left (e)
64
- case e => Left (e)
65
- }.fold(t => throw t, identity)
66
- Right (res)
52
+ val res = Try (new BloopCompiler (createBuildServer, 20 .seconds, strictBloopJsonCheck))
53
+ .toEither
54
+ .left.flatMap {
55
+ case e if offline =>
56
+ e.getCause match
57
+ case _ : FetchingDependenciesError =>
58
+ logger.diagnostic(
59
+ WarningMessages .offlineModeBloopNotFound,
60
+ Severity .Warning
61
+ )
62
+ SimpleScalaCompilerMaker (" java" , Nil )
63
+ .create(workspace, classesDir, buildClient, logger, buildOptions)
64
+ case _ => Left (e)
65
+ case e => Left (e)
66
+ }.fold(t => throw t, identity)
67
+ Right (res)
68
+ }
67
69
case Left (ex) => Left (ex)
68
70
}
0 commit comments