Skip to content

Commit b7032ee

Browse files
authored
Fix #218 - ImportOrderStep.createFromFile is now lazy. (#352)
1 parent 220b374 commit b7032ee

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ You might be looking for:
99

1010
* CSS and XML extensions are discontinued ([#325](https://github.com/diffplug/spotless/pull/325)).
1111
* Updated default google-java-format from 1.5 to 1.7 ([#335](https://github.com/diffplug/spotless/issues/335)).
12+
* `ImportOrderStep.createFromFile` is now lazy ([#218](https://github.com/diffplug/spotless/issues/218)).
1213

1314
### Version 1.17.0 - October 30th 2018 (javadoc [lib](https://diffplug.github.io/spotless/javadoc/spotless-lib/1.17.0/) [lib-extra](https://diffplug.github.io/spotless/javadoc/spotless-lib-extra/1.17.0/), artifact [lib]([jcenter](https://bintray.com/diffplug/opensource/spotless-lib), [lib-extra]([jcenter](https://bintray.com/diffplug/opensource/spotless-lib-extra)))
1415

lib/src/main/java/com/diffplug/spotless/java/ImportOrderStep.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.List;
2929
import java.util.Map;
3030
import java.util.Objects;
31+
import java.util.function.Supplier;
3132
import java.util.stream.Collectors;
3233
import java.util.stream.Stream;
3334

@@ -52,17 +53,17 @@ private ImportOrderStep(String lineFormat) {
5253
public FormatterStep createFrom(String... importOrder) {
5354
// defensive copying and null checking
5455
List<String> importOrderList = requireElementsNonNull(Arrays.asList(importOrder));
55-
return createFrom(importOrderList);
56+
return createFrom(() -> importOrderList);
5657
}
5758

5859
public FormatterStep createFrom(File importsFile) {
5960
Objects.requireNonNull(importsFile);
60-
return createFrom(getImportOrder(importsFile));
61+
return createFrom(() -> getImportOrder(importsFile));
6162
}
6263

63-
private FormatterStep createFrom(List<String> importOrder) {
64+
private FormatterStep createFrom(Supplier<List<String>> importOrder) {
6465
return FormatterStep.createLazy("importOrder",
65-
() -> new State(importOrder, lineFormat),
66+
() -> new State(importOrder.get(), lineFormat),
6667
State::toFormatter);
6768
}
6869

@@ -71,8 +72,8 @@ private FormatterStep createFrom(List<String> importOrder) {
7172
@Deprecated
7273
public static FormatterStep createFromOrder(List<String> importOrder) {
7374
// defensive copying and null checking
74-
importOrder = requireElementsNonNull(new ArrayList<>(importOrder));
75-
return forJava().createFrom(importOrder);
75+
List<String> importOrderCopy = requireElementsNonNull(new ArrayList<>(importOrder));
76+
return forJava().createFrom(() -> importOrderCopy);
7677
}
7778

7879
/** Static method has been replaced by instance method

plugin-gradle/CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* Improved configuration times for large projects (thanks to @oehme for finding [#348](https://github.com/diffplug/spotless/pull/348)).
77
* Updated default google-java-format from 1.5 to 1.7 ([#335](https://github.com/diffplug/spotless/issues/335)).
88
* Replacing a step no longer triggers early evaluation ([#219](https://github.com/diffplug/spotless/issues/219)).
9+
* `importOrderFile(Object file)` for java and groovy is now lazy ([#218](https://github.com/diffplug/spotless/issues/218)).
910

1011
### Version 3.17.0 - December 13th 2018 ([javadoc](https://diffplug.github.io/spotless/javadoc/spotless-plugin-gradle/3.17.0/), [jcenter](https://bintray.com/diffplug/opensource/spotless-plugin-gradle/3.17.0))
1112

plugin-maven/CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
* Provided eclipse-wtp formatters as part of custom source format element. ([#325](https://github.com/diffplug/spotless/pull/325)). This change obsoletes the CSS and XML source elements.
66
* Updated default google-java-format from 1.5 to 1.7 ([#335](https://github.com/diffplug/spotless/issues/335)).
7+
* `<importOrder><file>somefile</file></importOrder>` is now lazy ([#218](https://github.com/diffplug/spotless/issues/218)).
78

89
### Version 1.17.0 - December 13th 2018 ([javadoc](https://diffplug.github.io/spotless/javadoc/spotless-maven-plugin/1.17.0/), [jcenter](https://bintray.com/diffplug/opensource/spotless-maven-plugin/1.17.0))
910

0 commit comments

Comments
 (0)