Polish Gradle layer configuration DSL

This commit modifies the DSL for custom layer configuration in the
Gradle plugin to avoid duplication of terms that could be confusing.

Fixes gh-20563
This commit is contained in:
Scott Frederick
2020-03-18 16:21:40 -05:00
parent 06cefabb5b
commit e607c6842f
6 changed files with 21 additions and 14 deletions

View File

@@ -208,11 +208,11 @@ public class BootJar extends Jar implements BootArchive {
return;
}
if (this.layerConfiguration.getLayers() == null || this.layerConfiguration.getLayers().isEmpty()) {
if (this.layerConfiguration.getLayersOrder() == null || this.layerConfiguration.getLayersOrder().isEmpty()) {
this.layers = Layers.IMPLICIT;
}
else {
List<Layer> customLayers = this.layerConfiguration.getLayers().stream().map(Layer::new)
List<Layer> customLayers = this.layerConfiguration.getLayersOrder().stream().map(Layer::new)
.collect(Collectors.toList());
this.layers = new CustomLayers(customLayers, this.layerConfiguration.getClasses(),
this.layerConfiguration.getLibraries());

View File

@@ -44,7 +44,7 @@ public class LayerConfiguration {
private boolean includeLayerTools = true;
private List<String> layerNames = new ArrayList<>();
private List<String> layersOrder = new ArrayList<>();
private List<ResourceStrategy> resourceStrategies = new ArrayList<>();
@@ -66,16 +66,16 @@ public class LayerConfiguration {
}
@Input
public List<String> getLayers() {
return this.layerNames;
public List<String> getLayersOrder() {
return this.layersOrder;
}
public void layers(String... layers) {
this.layerNames = Arrays.asList(layers);
public void layersOrder(String... layers) {
this.layersOrder = Arrays.asList(layers);
}
public void layers(List<String> layers) {
this.layerNames = layers;
public void layersOrder(List<String> layers) {
this.layersOrder = layers;
}
@Input
@@ -84,10 +84,12 @@ public class LayerConfiguration {
}
public void classes(ResourceStrategy... resourceStrategies) {
assertLayersOrderConfigured();
this.resourceStrategies = Arrays.asList(resourceStrategies);
}
public void classes(Action<LayerConfiguration> config) {
assertLayersOrderConfigured();
this.strategySpec = StrategySpec.forResources();
config.execute(this);
}
@@ -98,14 +100,20 @@ public class LayerConfiguration {
}
public void libraries(LibraryStrategy... strategies) {
assertLayersOrderConfigured();
this.libraryStrategies = Arrays.asList(strategies);
}
public void libraries(Action<LayerConfiguration> configure) {
assertLayersOrderConfigured();
this.strategySpec = StrategySpec.forLibraries();
configure.execute(this);
}
private void assertLayersOrderConfigured() {
Assert.state(!this.layersOrder.isEmpty(), "'layersOrder' must be configured before filters can be applied.");
}
public void layerContent(String layerName, Action<LayerConfiguration> config) {
this.strategySpec.newStrategy();
config.execute(this);