Explicit type takes precedence over build and format
Prior to this commit, specifying the --format and/or --build options alongside --type did not use the explicit type as it should. This commit ignores the --build and --format options if a type is explicitly set. Fixes gh-1807
This commit is contained in:
parent
a85e02fbb9
commit
6a18ece6a2
|
@ -233,8 +233,9 @@ class ProjectGenerationRequest {
|
|||
throw new ReportableException(("No project type with id '"
|
||||
+ this.type + "' - check the service capabilities (--list)"));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
if (isDetectType()) {
|
||||
else if (isDetectType()) {
|
||||
Map<String, ProjectType> types = new HashMap<String, ProjectType>(
|
||||
metadata.getProjectTypes());
|
||||
if (this.build != null) {
|
||||
|
@ -257,6 +258,7 @@ class ProjectGenerationRequest {
|
|||
+ "' use --type with a more specific value " + types.keySet());
|
||||
}
|
||||
}
|
||||
else {
|
||||
ProjectType defaultType = metadata.getDefaultType();
|
||||
if (defaultType == null) {
|
||||
throw new ReportableException(
|
||||
|
@ -265,6 +267,7 @@ class ProjectGenerationRequest {
|
|||
}
|
||||
return defaultType;
|
||||
}
|
||||
}
|
||||
|
||||
private static void filter(Map<String, ProjectType> projects, String tag,
|
||||
String tagValue) {
|
||||
|
|
|
@ -138,6 +138,15 @@ public class ProjectGenerationRequestTests {
|
|||
this.request.generateUrl(metadata));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void typeAndBuildAndFormat() {
|
||||
InitializrServiceMetadata metadata = readMetadata();
|
||||
setBuildAndFormat("gradle", "project");
|
||||
request.setType("maven-build");
|
||||
assertEquals(createUrl("/pom.xml?type=maven-build"),
|
||||
this.request.generateUrl(metadata));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidType() throws URISyntaxException {
|
||||
this.request.setType("does-not-exist");
|
||||
|
@ -152,16 +161,19 @@ public class ProjectGenerationRequestTests {
|
|||
this.request.generateUrl(readMetadata("types-conflict"));
|
||||
}
|
||||
|
||||
private static URI createDefaultUrl(String param) {
|
||||
private static URI createUrl(String actionAndParam) {
|
||||
try {
|
||||
return new URI(ProjectGenerationRequest.DEFAULT_SERVICE_URL + "/starter.zip"
|
||||
+ param);
|
||||
return new URI(ProjectGenerationRequest.DEFAULT_SERVICE_URL + actionAndParam);
|
||||
}
|
||||
catch (URISyntaxException ex) {
|
||||
throw new IllegalStateException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private static URI createDefaultUrl(String param) {
|
||||
return createUrl("/starter.zip" + param);
|
||||
}
|
||||
|
||||
public void setBuildAndFormat(String build, String format) {
|
||||
this.request.setBuild(build != null ? build : "maven");
|
||||
this.request.setFormat(format != null ? format : "project");
|
||||
|
|
Loading…
Reference in New Issue