19
19
20
20
import java .io .Serializable ;
21
21
import java .lang .reflect .Method ;
22
+ import java .util .ArrayList ;
23
+ import java .util .List ;
22
24
import java .util .Map ;
23
25
import java .util .NavigableMap ;
24
26
import java .util .Objects ;
31
33
import com .diffplug .spotless .FormatterFunc ;
32
34
import com .diffplug .spotless .FormatterStep ;
33
35
import com .diffplug .spotless .JarState ;
36
+ import com .diffplug .spotless .Jvm ;
34
37
import com .diffplug .spotless .Provisioner ;
35
38
import com .diffplug .spotless .ThrowingEx .Supplier ;
36
39
@@ -42,6 +45,10 @@ private FreshMarkStep() {}
42
45
private static final String DEFAULT_VERSION = "1.3.1" ;
43
46
private static final String NAME = "freshmark" ;
44
47
private static final String MAVEN_COORDINATE = "com.diffplug.freshmark:freshmark:" ;
48
+
49
+ private static final String NASHORN_MAVEN_COORDINATE = "org.openjdk.nashorn:nashorn-core:" ;
50
+
51
+ private static final String NASHORN_VERSION = "15.4" ;
45
52
private static final String FORMATTER_CLASS = "com.diffplug.freshmark.FreshMark" ;
46
53
private static final String FORMATTER_METHOD = "compile" ;
47
54
@@ -55,8 +62,15 @@ public static FormatterStep create(String version, Supplier<Map<String, ?>> prop
55
62
Objects .requireNonNull (version , "version" );
56
63
Objects .requireNonNull (properties , "properties" );
57
64
Objects .requireNonNull (provisioner , "provisioner" );
65
+
66
+ List <String > mavenCoordinates = new ArrayList <>();
67
+ mavenCoordinates .add (MAVEN_COORDINATE + version );
68
+ if (Jvm .version () >= 15 ) {
69
+ mavenCoordinates .add (NASHORN_MAVEN_COORDINATE + NASHORN_VERSION );
70
+ }
71
+
58
72
return FormatterStep .createLazy (NAME ,
59
- () -> new State (JarState .from (MAVEN_COORDINATE + version , provisioner ), properties .get ()),
73
+ () -> new State (JarState .from (mavenCoordinates , provisioner ), properties .get ()),
60
74
State ::createFormat );
61
75
}
62
76
0 commit comments