Skip to content

Commit e686e4f

Browse files
committed
Make sortpom version configurable
Add test for version config Update SortPomTest to use ResourceHarness
1 parent 1028dd1 commit e686e4f

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

lib/src/main/java/com/diffplug/spotless/pom/SortPomCfg.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
public class SortPomCfg implements Serializable {
2222
private static final long serialVersionUID = 1L;
2323

24+
public String version = "3.2.1";
25+
2426
public String encoding = "UTF-8";
2527

2628
public String lineSeparator = System.getProperty("line.separator");

lib/src/main/java/com/diffplug/spotless/pom/SortPomStep.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
public class SortPomStep {
2929
public static final String NAME = "sortPom";
30+
static final String PACKAGE = "com.github.ekryd.sortpom";
31+
static final String MAVEN_COORDINATE = PACKAGE + ":sortpom-sorter:";
3032

3133
private SortPomStep() {}
3234

@@ -42,7 +44,7 @@ static class State implements Serializable {
4244

4345
public State(SortPomCfg cfg, Provisioner provisioner) throws IOException {
4446
this.cfg = cfg;
45-
this.jarState = JarState.from("com.github.ekryd.sortpom:sortpom-sorter:3.2.1", provisioner);
47+
this.jarState = JarState.from(MAVEN_COORDINATE + cfg.version, provisioner);
4648
}
4749

4850
FormatterFunc createFormat() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {

plugin-maven/src/main/java/com/diffplug/spotless/maven/pom/SortPom.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
public class SortPom implements FormatterStepFactory {
2727
private final SortPomCfg defaultValues = new SortPomCfg();
2828

29+
@Parameter
30+
String version = defaultValues.version;
31+
2932
@Parameter
3033
String encoding = defaultValues.encoding;
3134

@@ -80,6 +83,7 @@ public class SortPom implements FormatterStepFactory {
8083
@Override
8184
public FormatterStep newFormatterStep(FormatterStepConfig stepConfig) {
8285
SortPomCfg cfg = new SortPomCfg();
86+
cfg.version = version;
8387
cfg.encoding = encoding;
8488
cfg.lineSeparator = lineSeparator;
8589
cfg.expandEmptyElements = expandEmptyElements;

testlib/src/test/java/com/diffplug/spotless/pom/SortPomTest.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2021 DiffPlug
2+
* Copyright 2021-2023 DiffPlug
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,16 +17,21 @@
1717

1818
import org.junit.jupiter.api.Test;
1919

20-
import com.diffplug.spotless.Provisioner;
21-
import com.diffplug.spotless.StepHarness;
22-
import com.diffplug.spotless.TestProvisioner;
20+
import com.diffplug.spotless.*;
2321

24-
public class SortPomTest {
22+
public class SortPomTest extends ResourceHarness {
2523
@Test
2624
public void testSortPomWithDefaultConfig() throws Exception {
2725
SortPomCfg cfg = new SortPomCfg();
28-
Provisioner provisioner = TestProvisioner.mavenCentral();
29-
StepHarness harness = StepHarness.forStep(SortPomStep.create(cfg, provisioner));
30-
harness.testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
26+
FormatterStep step = SortPomStep.create(cfg, TestProvisioner.mavenCentral());
27+
StepHarness.forStep(step).testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
28+
}
29+
30+
@Test
31+
public void testSortPomWithVersion() throws Exception {
32+
SortPomCfg cfg = new SortPomCfg();
33+
cfg.version = "3.2.1";
34+
FormatterStep step = SortPomStep.create(cfg, TestProvisioner.mavenCentral());
35+
StepHarness.forStep(step).testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
3136
}
3237
}

0 commit comments

Comments
 (0)