Skip to content

Commit

Permalink
Make sortpom version configurable
Browse files Browse the repository at this point in the history
Add test for version config
Update SortPomTest to use ResourceHarness
  • Loading branch information
snowe2010 committed Apr 18, 2023
1 parent 7dbd038 commit 401f28d
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 9 deletions.
2 changes: 2 additions & 0 deletions lib/src/main/java/com/diffplug/spotless/pom/SortPomCfg.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
public class SortPomCfg implements Serializable {
private static final long serialVersionUID = 1L;

public String version = "3.2.1";

public String encoding = "UTF-8";

public String lineSeparator = System.getProperty("line.separator");
Expand Down
4 changes: 3 additions & 1 deletion lib/src/main/java/com/diffplug/spotless/pom/SortPomStep.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

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

private SortPomStep() {}

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

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

FormatterFunc createFormat() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
public class SortPom implements FormatterStepFactory {
private final SortPomCfg defaultValues = new SortPomCfg();

@Parameter
String version = defaultValues.version;

@Parameter
String encoding = defaultValues.encoding;

Expand Down Expand Up @@ -80,6 +83,7 @@ public class SortPom implements FormatterStepFactory {
@Override
public FormatterStep newFormatterStep(FormatterStepConfig stepConfig) {
SortPomCfg cfg = new SortPomCfg();
cfg.version = version;
cfg.encoding = encoding;
cfg.lineSeparator = lineSeparator;
cfg.expandEmptyElements = expandEmptyElements;
Expand Down
21 changes: 13 additions & 8 deletions testlib/src/test/java/com/diffplug/spotless/pom/SortPomTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2021 DiffPlug
* Copyright 2021-2023 DiffPlug
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -17,16 +17,21 @@

import org.junit.jupiter.api.Test;

import com.diffplug.spotless.Provisioner;
import com.diffplug.spotless.StepHarness;
import com.diffplug.spotless.TestProvisioner;
import com.diffplug.spotless.*;

public class SortPomTest {
public class SortPomTest extends ResourceHarness {
@Test
public void testSortPomWithDefaultConfig() throws Exception {
SortPomCfg cfg = new SortPomCfg();
Provisioner provisioner = TestProvisioner.mavenCentral();
StepHarness harness = StepHarness.forStep(SortPomStep.create(cfg, provisioner));
harness.testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
FormatterStep step = SortPomStep.create(cfg, TestProvisioner.mavenCentral());
StepHarness.forStep(step).testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
}

@Test
public void testSortPomWithVersion() throws Exception {
SortPomCfg cfg = new SortPomCfg();
cfg.version = "3.2.1";
FormatterStep step = SortPomStep.create(cfg, TestProvisioner.mavenCentral());
StepHarness.forStep(step).testResource("pom/pom_dirty.xml", "pom/pom_clean_default.xml");
}
}

0 comments on commit 401f28d

Please sign in to comment.