mirror of
https://gitee.com/dcren/initializr.git
synced 2026-09-19 06:17:42 +08:00
Polish "Derive package name from groupId and artifactId"
Closes gh-423
This commit is contained in:
+9
-1
@@ -19,6 +19,8 @@ package io.spring.initializr.generator;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base settings of a project request. Only these can be bound by user's
|
* The base settings of a project request. Only these can be bound by user's
|
||||||
* input.
|
* input.
|
||||||
@@ -142,7 +144,13 @@ public class BasicProjectRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getPackageName() {
|
public String getPackageName() {
|
||||||
return packageName;
|
if (StringUtils.hasText(packageName)) {
|
||||||
|
return packageName;
|
||||||
|
}
|
||||||
|
if (StringUtils.hasText(groupId) && StringUtils.hasText(artifactId)) {
|
||||||
|
return getGroupId() + "." + getArtifactId();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPackageName(String packageName) {
|
public void setPackageName(String packageName) {
|
||||||
|
|||||||
+5
-1
@@ -115,7 +115,11 @@ public class ProjectRequest extends BasicProjectRequest {
|
|||||||
BeanWrapperImpl bean = new BeanWrapperImpl(this);
|
BeanWrapperImpl bean = new BeanWrapperImpl(this);
|
||||||
metadata.defaults().forEach((key, value) -> {
|
metadata.defaults().forEach((key, value) -> {
|
||||||
if (bean.isWritableProperty(key)) {
|
if (bean.isWritableProperty(key)) {
|
||||||
bean.setPropertyValue(key, value);
|
// We want to be able to infer a package name if none has been
|
||||||
|
// explicitly set
|
||||||
|
if (!key.equals("packageName")) {
|
||||||
|
bean.setPropertyValue(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-2
@@ -97,7 +97,7 @@ public class InitializrConfiguration {
|
|||||||
if (!StringUtils.hasText(packageName)) {
|
if (!StringUtils.hasText(packageName)) {
|
||||||
return defaultPackageName;
|
return defaultPackageName;
|
||||||
}
|
}
|
||||||
String candidate = String.join(".", packageName.trim().split("\\W+"));
|
String candidate = cleanPackageName(packageName);
|
||||||
if (hasInvalidChar(candidate.replace(".", ""))
|
if (hasInvalidChar(candidate.replace(".", ""))
|
||||||
|| env.invalidPackageNames.contains(candidate)) {
|
|| env.invalidPackageNames.contains(candidate)) {
|
||||||
return defaultPackageName;
|
return defaultPackageName;
|
||||||
@@ -107,6 +107,11 @@ public class InitializrConfiguration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String cleanPackageName(String packageName) {
|
||||||
|
return String.join(".", packageName.trim().replaceAll("-", "").split("\\W+"))
|
||||||
|
.replaceAll("\\.[0-9]+", ".");
|
||||||
|
}
|
||||||
|
|
||||||
private static String unsplitWords(String text) {
|
private static String unsplitWords(String text) {
|
||||||
return String
|
return String
|
||||||
.join("", Arrays.stream(text
|
.join("", Arrays.stream(text
|
||||||
@@ -385,7 +390,7 @@ public class InitializrConfiguration {
|
|||||||
public ParentPom resolveParentPom(String bootVersion) {
|
public ParentPom resolveParentPom(String bootVersion) {
|
||||||
return StringUtils.hasText(parent.groupId) ? parent
|
return StringUtils.hasText(parent.groupId) ? parent
|
||||||
: new ParentPom("org.springframework.boot",
|
: new ParentPom("org.springframework.boot",
|
||||||
"spring-boot-starter-parent", bootVersion);
|
"spring-boot-starter-parent", bootVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ParentPom {
|
public static class ParentPom {
|
||||||
|
|||||||
+4
-6
@@ -297,12 +297,10 @@ public class InitializrMetadata {
|
|||||||
if (value != null) {
|
if (value != null) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
else if(this.groupId.getContent() != null && this.artifactId.getContent() != null) {
|
else if (this.groupId.getContent() != null
|
||||||
return this.groupId.getContent()
|
&& this.artifactId.getContent() != null) {
|
||||||
.concat(".")
|
return InitializrConfiguration.cleanPackageName(
|
||||||
.concat(this.artifactId.getContent())
|
this.groupId.getContent() + "." + this.artifactId.getContent());
|
||||||
.replaceAll("-", "")
|
|
||||||
.replaceAll("\\.[0-9]+", ".");
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -197,6 +197,15 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
"providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')");
|
"providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void groupIdAndArtifactIdInferPackageName() {
|
||||||
|
ProjectRequest request = createProjectRequest("web");
|
||||||
|
request.setGroupId("org.acme");
|
||||||
|
request.setArtifactId("42foo");
|
||||||
|
generateProject(request)
|
||||||
|
.isJavaProject("org/acme/foo", "DemoApplication");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void springBoot11UseEnableAutoConfigurationJava() {
|
public void springBoot11UseEnableAutoConfigurationJava() {
|
||||||
ProjectRequest request = createProjectRequest("web");
|
ProjectRequest request = createProjectRequest("web");
|
||||||
|
|||||||
+91
-63
@@ -28,6 +28,7 @@ import org.junit.Rule;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
import org.junit.rules.ExpectedException;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
|
|
||||||
@@ -39,23 +40,22 @@ public class ProjectRequestTests {
|
|||||||
@Rule
|
@Rule
|
||||||
public final ExpectedException thrown = ExpectedException.none();
|
public final ExpectedException thrown = ExpectedException.none();
|
||||||
|
|
||||||
|
private InitializrMetadata metadata = InitializrMetadataTestBuilder
|
||||||
|
.withDefaults().build();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void initializeProjectRequest() {
|
public void initializeGroupIdAndArtifactId() {
|
||||||
InitializrMetadata metadata = InitializrMetadataBuilder.create().build();
|
metadata = InitializrMetadataBuilder.create().build();
|
||||||
metadata.getGroupId().setContent("org.acme");
|
metadata.getGroupId().setContent("org.acme");
|
||||||
metadata.getArtifactId().setContent("my-project");
|
metadata.getArtifactId().setContent("my-project");
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
request.initialize(metadata);
|
|
||||||
assertEquals("org.acme", request.getGroupId());
|
assertEquals("org.acme", request.getGroupId());
|
||||||
assertEquals("my-project", request.getArtifactId());
|
assertEquals("my-project", request.getArtifactId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void initializeProjectRequestWithDefaults() {
|
public void initializeSetsMetadataDefaults() {
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
ProjectRequest request = initProjectRequest();
|
||||||
.build();
|
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
request.initialize(metadata);
|
|
||||||
assertEquals(metadata.getName().getContent(), request.getName());
|
assertEquals(metadata.getName().getContent(), request.getName());
|
||||||
assertEquals(metadata.getTypes().getDefault().getId(), request.getType());
|
assertEquals(metadata.getTypes().getDefault().getId(), request.getType());
|
||||||
assertEquals(metadata.getDescription().getContent(), request.getDescription());
|
assertEquals(metadata.getDescription().getContent(), request.getDescription());
|
||||||
@@ -70,10 +70,9 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setType("maven-project");
|
request.setType("maven-project");
|
||||||
request.getStyle().addAll(Arrays.asList("web", "spring-data"));
|
request.getStyle().addAll(Arrays.asList("web", "spring-data"));
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
@@ -84,10 +83,9 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveWithDependencies() {
|
public void resolveWithDependencies() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setType("maven-project");
|
request.setType("maven-project");
|
||||||
request.getDependencies().addAll(Arrays.asList("web", "spring-data"));
|
request.getDependencies().addAll(Arrays.asList("web", "spring-data"));
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
@@ -98,10 +96,10 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveFullMetadata() {
|
public void resolveFullMetadata() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addDependencyGroup("code", createDependency("org.foo", "acme", "1.2.0"))
|
.addDependencyGroup("code", createDependency("org.foo", "acme", "1.2.0"))
|
||||||
.build();
|
.build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("org.foo:acme");
|
request.getStyle().add("org.foo:acme");
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertDependency(request.getResolvedDependencies().get(0), "org.foo", "acme",
|
assertDependency(request.getResolvedDependencies().get(0), "org.foo", "acme",
|
||||||
@@ -110,10 +108,9 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveUnknownSimpleId() {
|
public void resolveUnknownSimpleId() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addDependencyGroup("code", "org.foo:bar").build();
|
.addDependencyGroup("code", "org.foo:bar").build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().addAll(Arrays.asList("org.foo:bar", "foo-bar"));
|
request.getStyle().addAll(Arrays.asList("org.foo:bar", "foo-bar"));
|
||||||
|
|
||||||
thrown.expect(InvalidProjectRequestException.class);
|
thrown.expect(InvalidProjectRequestException.class);
|
||||||
@@ -124,10 +121,9 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveUnknownDependency() {
|
public void resolveUnknownDependency() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addDependencyGroup("code", "org.foo:bar").build();
|
.addDependencyGroup("code", "org.foo:bar").build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("org.foo:acme"); // does not exist
|
request.getStyle().add("org.foo:acme"); // does not exist
|
||||||
|
|
||||||
thrown.expect(InvalidProjectRequestException.class);
|
thrown.expect(InvalidProjectRequestException.class);
|
||||||
@@ -138,12 +134,11 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveDependencyInRange() {
|
public void resolveDependencyInRange() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
||||||
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addDependencyGroup("code", dependency).build();
|
.addDependencyGroup("code", dependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("org.foo:bar");
|
request.getStyle().add("org.foo:bar");
|
||||||
request.setBootVersion("1.1.2.RELEASE");
|
request.setBootVersion("1.1.2.RELEASE");
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
@@ -151,12 +146,11 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveDependencyNotInRange() {
|
public void resolveDependencyNotInRange() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
||||||
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addDependencyGroup("code", dependency).build();
|
.addDependencyGroup("code", dependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("org.foo:bar");
|
request.getStyle().add("org.foo:bar");
|
||||||
request.setBootVersion("0.9.9.RELEASE");
|
request.setBootVersion("0.9.9.RELEASE");
|
||||||
|
|
||||||
@@ -173,10 +167,10 @@ public class ProjectRequestTests {
|
|||||||
"[1.0.0.RELEASE, 1.1.0.RELEASE)", null, null, "0.1.0.RELEASE"));
|
"[1.0.0.RELEASE, 1.1.0.RELEASE)", null, null, "0.1.0.RELEASE"));
|
||||||
dependency.getMappings().add(Mapping.create(
|
dependency.getMappings().add(Mapping.create(
|
||||||
"1.1.0.RELEASE", null, null, "0.2.0.RELEASE"));
|
"1.1.0.RELEASE", null, null, "0.2.0.RELEASE"));
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addDependencyGroup("code", dependency).build();
|
.addDependencyGroup("code", dependency).build();
|
||||||
|
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setBootVersion("1.0.5.RELEASE");
|
request.setBootVersion("1.0.5.RELEASE");
|
||||||
request.getStyle().add("org.foo:bar");
|
request.getStyle().add("org.foo:bar");
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
@@ -193,31 +187,25 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveBuild() {
|
public void resolveBuild() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.build();
|
|
||||||
request.setType("gradle-project");
|
request.setType("gradle-project");
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals("gradle", request.getBuild());
|
assertEquals("gradle", request.getBuild());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveBuildNoTag() {
|
public void resolveBuildNoTag() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.addType("foo", false, "/foo.zip", null, null).build();
|
.addType("foo", false, "/foo.zip", null, null).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setType("foo");
|
request.setType("foo");
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertNull(request.getBuild());
|
assertNull(request.getBuild());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveUnknownType() {
|
public void resolveUnknownType() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.build();
|
|
||||||
request.setType("foo-project");
|
request.setType("foo-project");
|
||||||
|
|
||||||
thrown.expect(InvalidProjectRequestException.class);
|
thrown.expect(InvalidProjectRequestException.class);
|
||||||
@@ -227,10 +215,8 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveApplicationNameWithNoName() {
|
public void resolveApplicationNameWithNoName() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
request.setName(null);
|
||||||
.build();
|
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(metadata.getConfiguration().getEnv().getFallbackApplicationName(),
|
assertEquals(metadata.getConfiguration().getEnv().getFallbackApplicationName(),
|
||||||
request.getApplicationName());
|
request.getApplicationName());
|
||||||
@@ -238,60 +224,96 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveApplicationName() {
|
public void resolveApplicationName() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setName("Foo2");
|
request.setName("Foo2");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.build();
|
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals("Foo2Application", request.getApplicationName());
|
assertEquals("Foo2Application", request.getApplicationName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveApplicationNameWithApplicationNameSet() {
|
public void resolveApplicationNameWithApplicationNameSet() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setName("Foo2");
|
request.setName("Foo2");
|
||||||
request.setApplicationName("MyApplicationName");
|
request.setApplicationName("MyApplicationName");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.build();
|
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals("MyApplicationName", request.getApplicationName());
|
assertEquals("MyApplicationName", request.getApplicationName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void cleanPackageNameWithNoName() {
|
public void packageNameInferredByGroupIdAndArtifactId() {
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
|
request.setGroupId("org.acme");
|
||||||
|
request.setArtifactId("foo");
|
||||||
|
request.resolve(metadata);
|
||||||
|
assertThat(request.getPackageName()).isEqualTo("org.acme.foo");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void packageNameInferredByGroupIdAndCompositeArtifactId() {
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
|
request.setGroupId("org.acme");
|
||||||
|
request.setArtifactId("foo-bar");
|
||||||
|
request.resolve(metadata);
|
||||||
|
assertThat(request.getPackageName()).isEqualTo("org.acme.foobar");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void packageNameUseFallbackIfGroupIdNotSet() {
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
|
request.setGroupId(null);
|
||||||
|
request.setArtifactId("foo");
|
||||||
|
request.resolve(metadata);
|
||||||
|
assertThat(request.getPackageName()).isEqualTo("com.example.demo");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void packageNameUseFallbackIfArtifactIdNotSet() {
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
|
request.setGroupId("org.acme");
|
||||||
|
request.setArtifactId(null);
|
||||||
|
request.resolve(metadata);
|
||||||
|
assertThat(request.getPackageName()).isEqualTo("com.example.demo");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cleanPackageNameLeadingNumbers() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = new ProjectRequest();
|
||||||
|
request.setPackageName("org.foo.42bar");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
request.resolve(metadata);
|
||||||
|
assertThat(request.getPackageName()).isEqualTo("org.foo.bar");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cleanPackageNameWithNoName() {
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(metadata.getPackageName().getContent(), request.getPackageName());
|
assertEquals(metadata.getPackageName().getContent(), request.getPackageName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void cleanPackageName() {
|
public void cleanPackageName() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
ProjectRequest request = initProjectRequest();
|
||||||
request.setPackageName("com:foo bar");
|
request.setPackageName("com:foo bar");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
|
||||||
.build();
|
|
||||||
|
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals("com.foo.bar", request.getPackageName());
|
assertEquals("com.foo.bar", request.getPackageName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveAdditionalBoms() {
|
public void resolveAdditionalBoms() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = Dependency.withId("foo");
|
Dependency dependency = Dependency.withId("foo");
|
||||||
dependency.setBom("foo-bom");
|
dependency.setBom("foo-bom");
|
||||||
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
||||||
bom.getAdditionalBoms().add("bar-bom");
|
bom.getAdditionalBoms().add("bar-bom");
|
||||||
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
||||||
"1.1.0");
|
"1.1.0");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
||||||
.addDependencyGroup("test", dependency).build();
|
.addDependencyGroup("test", dependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("foo");
|
request.getStyle().add("foo");
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(1, (request.getResolvedDependencies().size()));
|
assertEquals(1, (request.getResolvedDependencies().size()));
|
||||||
@@ -302,7 +324,6 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveAdditionalBomsDuplicates() {
|
public void resolveAdditionalBomsDuplicates() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = Dependency.withId("foo");
|
Dependency dependency = Dependency.withId("foo");
|
||||||
dependency.setBom("foo-bom");
|
dependency.setBom("foo-bom");
|
||||||
Dependency anotherDependency = Dependency.withId("bar");
|
Dependency anotherDependency = Dependency.withId("bar");
|
||||||
@@ -311,9 +332,10 @@ public class ProjectRequestTests {
|
|||||||
bom.getAdditionalBoms().add("bar-bom");
|
bom.getAdditionalBoms().add("bar-bom");
|
||||||
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
||||||
"1.1.0");
|
"1.1.0");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
||||||
.addDependencyGroup("test", dependency, anotherDependency).build();
|
.addDependencyGroup("test", dependency, anotherDependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(2, request.getResolvedDependencies().size());
|
assertEquals(2, request.getResolvedDependencies().size());
|
||||||
@@ -324,17 +346,17 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveAdditionalRepositories() {
|
public void resolveAdditionalRepositories() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = Dependency.withId("foo");
|
Dependency dependency = Dependency.withId("foo");
|
||||||
dependency.setBom("foo-bom");
|
dependency.setBom("foo-bom");
|
||||||
dependency.setRepository("foo-repo");
|
dependency.setRepository("foo-repo");
|
||||||
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
||||||
bom.getRepositories().add("bar-repo");
|
bom.getRepositories().add("bar-repo");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addBom("foo-bom", bom)
|
.addBom("foo-bom", bom)
|
||||||
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
||||||
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
||||||
.addDependencyGroup("test", dependency).build();
|
.addDependencyGroup("test", dependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().add("foo");
|
request.getStyle().add("foo");
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(1, request.getResolvedDependencies().size());
|
assertEquals(1, request.getResolvedDependencies().size());
|
||||||
@@ -350,7 +372,6 @@ public class ProjectRequestTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void resolveAdditionalRepositoriesDuplicates() {
|
public void resolveAdditionalRepositoriesDuplicates() {
|
||||||
ProjectRequest request = new ProjectRequest();
|
|
||||||
Dependency dependency = Dependency.withId("foo");
|
Dependency dependency = Dependency.withId("foo");
|
||||||
dependency.setBom("foo-bom");
|
dependency.setBom("foo-bom");
|
||||||
dependency.setRepository("foo-repo");
|
dependency.setRepository("foo-repo");
|
||||||
@@ -358,11 +379,12 @@ public class ProjectRequestTests {
|
|||||||
bom.getRepositories().add("bar-repo");
|
bom.getRepositories().add("bar-repo");
|
||||||
Dependency anotherDependency = Dependency.withId("bar");
|
Dependency anotherDependency = Dependency.withId("bar");
|
||||||
anotherDependency.setRepository("bar-repo");
|
anotherDependency.setRepository("bar-repo");
|
||||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
.addBom("foo-bom", bom)
|
.addBom("foo-bom", bom)
|
||||||
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
||||||
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
||||||
.addDependencyGroup("test", dependency, anotherDependency).build();
|
.addDependencyGroup("test", dependency, anotherDependency).build();
|
||||||
|
ProjectRequest request = initProjectRequest();
|
||||||
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
||||||
request.resolve(metadata);
|
request.resolve(metadata);
|
||||||
assertEquals(2, request.getResolvedDependencies().size());
|
assertEquals(2, request.getResolvedDependencies().size());
|
||||||
@@ -376,6 +398,12 @@ public class ProjectRequestTests {
|
|||||||
request.getRepositories().get("bar-repo"));
|
request.getRepositories().get("bar-repo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ProjectRequest initProjectRequest() {
|
||||||
|
ProjectRequest request = new ProjectRequest();
|
||||||
|
request.initialize(this.metadata);
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
|
||||||
private static void assertBootStarter(Dependency actual, String name) {
|
private static void assertBootStarter(Dependency actual, String name) {
|
||||||
Dependency expected = new Dependency();
|
Dependency expected = new Dependency();
|
||||||
expected.asSpringBootStarter(name);
|
expected.asSpringBootStarter(name);
|
||||||
|
|||||||
+1
-1
@@ -124,7 +124,7 @@ public class InitializrConfigurationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void generatePackageNameMultipleDashers() {
|
public void generatePackageNameMultipleDashers() {
|
||||||
assertEquals("com.foo", this.properties.cleanPackageName("com--foo", "com.example"));
|
assertEquals("com.foobar", this.properties.cleanPackageName("com.foo--bar", "com.example"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
+13
-4
@@ -149,8 +149,8 @@ public class ProjectGenerationSmokeTests
|
|||||||
HomePage page = toHome();
|
HomePage page = toHome();
|
||||||
page.groupId("org.foo");
|
page.groupId("org.foo");
|
||||||
page.submit();
|
page.submit();
|
||||||
zipProjectAssert(from("demo.zip")).hasBaseDir("demo").isJavaProject("org.foo",
|
zipProjectAssert(from("demo.zip")).hasBaseDir("demo")
|
||||||
"DemoApplication");
|
.isJavaProject("org.foo.demo", "DemoApplication");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -159,7 +159,16 @@ public class ProjectGenerationSmokeTests
|
|||||||
page.artifactId("my-project");
|
page.artifactId("my-project");
|
||||||
page.submit();
|
page.submit();
|
||||||
zipProjectAssert(from("my-project.zip")).hasBaseDir("my-project")
|
zipProjectAssert(from("my-project.zip")).hasBaseDir("my-project")
|
||||||
.isJavaProject("com.example", "MyProjectApplication");
|
.isJavaProject("com.example.myproject", "MyProjectApplication");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void customArtifactIdWithInvalidPackageNameIsHandled() throws Exception {
|
||||||
|
HomePage page = toHome();
|
||||||
|
page.artifactId("42my-project");
|
||||||
|
page.submit();
|
||||||
|
zipProjectAssert(from("42my-project.zip")).hasBaseDir("42my-project")
|
||||||
|
.isJavaProject("com.example.myproject", "Application");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -333,7 +342,7 @@ public class ProjectGenerationSmokeTests
|
|||||||
page.submit();
|
page.submit();
|
||||||
ProjectAssert projectAssert = zipProjectAssert(from("my-project.zip"));
|
ProjectAssert projectAssert = zipProjectAssert(from("my-project.zip"));
|
||||||
projectAssert.hasBaseDir("my-project").isMavenProject()
|
projectAssert.hasBaseDir("my-project").isMavenProject()
|
||||||
.isJavaProject("com.example.acme", "MyProjectApplication")
|
.isJavaProject("com.example.acme.myproject", "MyProjectApplication")
|
||||||
.hasStaticAndTemplatesResources(false).pomAssert()
|
.hasStaticAndTemplatesResources(false).pomAssert()
|
||||||
.hasGroupId("com.example.acme").hasArtifactId("my-project")
|
.hasGroupId("com.example.acme").hasArtifactId("my-project")
|
||||||
.hasDependenciesCount(2).hasSpringBootStarterRootDependency()
|
.hasDependenciesCount(2).hasSpringBootStarterRootDependency()
|
||||||
|
|||||||
Reference in New Issue
Block a user