Skip to content

Commit 273a832

Browse files
Fix Freshmark compatibility with JDK 15+ (fixes #803)
1 parent 688e01a commit 273a832

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

lib/src/main/java/com/diffplug/spotless/markdown/FreshMarkStep.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,17 @@
1919

2020
import java.io.Serializable;
2121
import java.lang.reflect.Method;
22+
import java.util.ArrayList;
23+
import java.util.Collection;
24+
import java.util.List;
2225
import java.util.Map;
2326
import java.util.NavigableMap;
2427
import java.util.Objects;
2528
import java.util.TreeMap;
2629
import java.util.function.Consumer;
2730

31+
import com.diffplug.spotless.Jvm;
32+
2833
import org.slf4j.Logger;
2934
import org.slf4j.LoggerFactory;
3035

@@ -42,6 +47,10 @@ private FreshMarkStep() {}
4247
private static final String DEFAULT_VERSION = "1.3.1";
4348
private static final String NAME = "freshmark";
4449
private static final String MAVEN_COORDINATE = "com.diffplug.freshmark:freshmark:";
50+
51+
private static final String NASHORN_MAVEN_COORDINATE = "org.openjdk.nashorn:nashorn-core:";
52+
53+
private static final String NASHORN_VERSION = "15.4";
4554
private static final String FORMATTER_CLASS = "com.diffplug.freshmark.FreshMark";
4655
private static final String FORMATTER_METHOD = "compile";
4756

@@ -55,8 +64,15 @@ public static FormatterStep create(String version, Supplier<Map<String, ?>> prop
5564
Objects.requireNonNull(version, "version");
5665
Objects.requireNonNull(properties, "properties");
5766
Objects.requireNonNull(provisioner, "provisioner");
67+
68+
List<String> mavenCoordinates = new ArrayList<>();
69+
mavenCoordinates.add(MAVEN_COORDINATE + version);
70+
if (Jvm.version() >= 15) {
71+
mavenCoordinates.add(NASHORN_MAVEN_COORDINATE + NASHORN_VERSION);
72+
}
73+
5874
return FormatterStep.createLazy(NAME,
59-
() -> new State(JarState.from(MAVEN_COORDINATE + version, provisioner), properties.get()),
75+
() -> new State(JarState.from(mavenCoordinates, provisioner), properties.get()),
6076
State::createFormat);
6177
}
6278

testlib/src/test/java/com/diffplug/spotless/markdown/FreshMarkStepTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.diffplug.spotless.StepHarness;
2929
import com.diffplug.spotless.TestProvisioner;
3030

31-
@EnabledForJreRange(max = JAVA_14)
3231
class FreshMarkStepTest {
3332
@Test
3433
void behavior() throws Exception {

0 commit comments

Comments
 (0)