mirror of
https://gitee.com/dcren/initializr.git
synced 2026-02-27 06:03:18 +08:00
Merge pull request #423 from bclozel:gh-421
* pr/423: Polish "Derive package name from groupId and artifactId" Derive package name from groupId and artifactId
This commit is contained in:
@@ -46,7 +46,7 @@ public class ProjectRequestDocumentFactoryTests extends AbstractInitializrStatTe
|
||||
assertEquals(null, document.getRequestIp());
|
||||
assertEquals("com.example", document.getGroupId());
|
||||
assertEquals("demo", document.getArtifactId());
|
||||
assertEquals("com.example", document.getPackageName());
|
||||
assertEquals("com.example.demo", document.getPackageName());
|
||||
assertEquals("1.2.3.RELEASE", document.getBootVersion());
|
||||
assertEquals("1.8", document.getJavaVersion());
|
||||
assertEquals("java", document.getLanguage());
|
||||
|
||||
@@ -19,6 +19,8 @@ package io.spring.initializr.generator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* The base settings of a project request. Only these can be bound by user's
|
||||
* input.
|
||||
@@ -142,7 +144,13 @@ public class BasicProjectRequest {
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
@@ -115,7 +115,11 @@ public class ProjectRequest extends BasicProjectRequest {
|
||||
BeanWrapperImpl bean = new BeanWrapperImpl(this);
|
||||
metadata.defaults().forEach((key, value) -> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class InitializrConfiguration {
|
||||
if (!StringUtils.hasText(packageName)) {
|
||||
return defaultPackageName;
|
||||
}
|
||||
String candidate = String.join(".", packageName.trim().split("\\W+"));
|
||||
String candidate = cleanPackageName(packageName);
|
||||
if (hasInvalidChar(candidate.replace(".", ""))
|
||||
|| env.invalidPackageNames.contains(candidate)) {
|
||||
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) {
|
||||
return String
|
||||
.join("", Arrays.stream(text
|
||||
@@ -385,7 +390,7 @@ public class InitializrConfiguration {
|
||||
public ParentPom resolveParentPom(String bootVersion) {
|
||||
return StringUtils.hasText(parent.groupId) ? parent
|
||||
: new ParentPom("org.springframework.boot",
|
||||
"spring-boot-starter-parent", bootVersion);
|
||||
"spring-boot-starter-parent", bootVersion);
|
||||
}
|
||||
|
||||
public static class ParentPom {
|
||||
|
||||
@@ -65,7 +65,7 @@ public class InitializrMetadata {
|
||||
private final TextCapability version = new TextCapability("version", "Version",
|
||||
"project version");
|
||||
|
||||
private final TextCapability packageName = new PackageCapability(groupId);
|
||||
private final TextCapability packageName = new PackageCapability(groupId, artifactId);
|
||||
|
||||
public InitializrMetadata() {
|
||||
this(new InitializrConfiguration());
|
||||
@@ -282,19 +282,27 @@ public class InitializrMetadata {
|
||||
}
|
||||
|
||||
private static class PackageCapability extends TextCapability {
|
||||
private final TextCapability nameCapability;
|
||||
private final TextCapability groupId;
|
||||
private final TextCapability artifactId;
|
||||
|
||||
PackageCapability(TextCapability nameCapability) {
|
||||
PackageCapability(TextCapability groupId, TextCapability artifactId) {
|
||||
super("packageName", "Package Name", "root package");
|
||||
this.nameCapability = nameCapability;
|
||||
this.groupId = groupId;
|
||||
this.artifactId = artifactId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContent() {
|
||||
String value = super.getContent();
|
||||
return value != null ? value
|
||||
: (nameCapability.getContent() != null
|
||||
? nameCapability.getContent().replace("-", ".") : null);
|
||||
if (value != null) {
|
||||
return value;
|
||||
}
|
||||
else if (this.groupId.getContent() != null
|
||||
&& this.artifactId.getContent() != null) {
|
||||
return InitializrConfiguration.cleanPackageName(
|
||||
this.groupId.getContent() + "." + this.artifactId.getContent());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/main/" + language + "/com/example/DemoApplication." + extension)
|
||||
"src/main/" + language + "/com/example/demo/DemoApplication." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/standard/DemoApplication." + expectedExtension));
|
||||
}
|
||||
@@ -88,7 +88,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/test/" + language + "/com/example/DemoApplicationTests." + extension)
|
||||
"src/test/" + language + "/com/example/demo/DemoApplicationTests." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/standard/DemoApplicationTests." + expectedExtension));
|
||||
}
|
||||
@@ -100,7 +100,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/test/" + language + "/com/example/DemoApplicationTests." + extension)
|
||||
"src/test/" + language + "/com/example/demo/DemoApplicationTests." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/standard/DemoApplicationTestsWeb." + expectedExtension));
|
||||
}
|
||||
@@ -129,7 +129,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
}
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/main/" + language + "/com/example/ServletInitializer." + extension)
|
||||
"src/main/" + language + "/com/example/demo/ServletInitializer." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/" + expectedOutput + "/ServletInitializer." + expectedExtension));
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/test/" + language + "/com/example/DemoApplicationTests." + extension)
|
||||
"src/test/" + language + "/com/example/demo/DemoApplicationTests." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/standard/DemoApplicationTests." + expectedExtension));
|
||||
}
|
||||
@@ -155,7 +155,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/test/" + language + "/com/example/DemoApplicationTests." + extension)
|
||||
"src/test/" + language + "/com/example/demo/DemoApplicationTests." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/spring-boot-1.4/DemoApplicationTests." + expectedExtension));
|
||||
}
|
||||
@@ -168,7 +168,7 @@ public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests
|
||||
|
||||
ProjectAssert project = generateProject(request);
|
||||
project.sourceCodeAssert(
|
||||
"src/test/" + language + "/com/example/DemoApplicationTests." + extension)
|
||||
"src/test/" + language + "/com/example/demo/DemoApplicationTests." + extension)
|
||||
.equalsTo(new ClassPathResource("project/" + language
|
||||
+ "/spring-boot-1.4/DemoApplicationTests." + expectedExtension));
|
||||
}
|
||||
|
||||
@@ -197,6 +197,15 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
||||
"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
|
||||
public void springBoot11UseEnableAutoConfigurationJava() {
|
||||
ProjectRequest request = createProjectRequest("web");
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
@@ -39,23 +40,22 @@ public class ProjectRequestTests {
|
||||
@Rule
|
||||
public final ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
private InitializrMetadata metadata = InitializrMetadataTestBuilder
|
||||
.withDefaults().build();
|
||||
|
||||
@Test
|
||||
public void initializeProjectRequest() {
|
||||
InitializrMetadata metadata = InitializrMetadataBuilder.create().build();
|
||||
public void initializeGroupIdAndArtifactId() {
|
||||
metadata = InitializrMetadataBuilder.create().build();
|
||||
metadata.getGroupId().setContent("org.acme");
|
||||
metadata.getArtifactId().setContent("my-project");
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
request.initialize(metadata);
|
||||
ProjectRequest request = initProjectRequest();
|
||||
assertEquals("org.acme", request.getGroupId());
|
||||
assertEquals("my-project", request.getArtifactId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initializeProjectRequestWithDefaults() {
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
request.initialize(metadata);
|
||||
public void initializeSetsMetadataDefaults() {
|
||||
ProjectRequest request = initProjectRequest();
|
||||
assertEquals(metadata.getName().getContent(), request.getName());
|
||||
assertEquals(metadata.getTypes().getDefault().getId(), request.getType());
|
||||
assertEquals(metadata.getDescription().getContent(), request.getDescription());
|
||||
@@ -70,10 +70,9 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolve() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setType("maven-project");
|
||||
request.getStyle().addAll(Arrays.asList("web", "spring-data"));
|
||||
request.resolve(metadata);
|
||||
@@ -84,10 +83,9 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveWithDependencies() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", "web", "security", "spring-data").build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setType("maven-project");
|
||||
request.getDependencies().addAll(Arrays.asList("web", "spring-data"));
|
||||
request.resolve(metadata);
|
||||
@@ -98,10 +96,10 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveFullMetadata() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", createDependency("org.foo", "acme", "1.2.0"))
|
||||
.build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("org.foo:acme");
|
||||
request.resolve(metadata);
|
||||
assertDependency(request.getResolvedDependencies().get(0), "org.foo", "acme",
|
||||
@@ -110,10 +108,9 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveUnknownSimpleId() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", "org.foo:bar").build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().addAll(Arrays.asList("org.foo:bar", "foo-bar"));
|
||||
|
||||
thrown.expect(InvalidProjectRequestException.class);
|
||||
@@ -124,10 +121,9 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveUnknownDependency() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", "org.foo:bar").build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("org.foo:acme"); // does not exist
|
||||
|
||||
thrown.expect(InvalidProjectRequestException.class);
|
||||
@@ -138,12 +134,11 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveDependencyInRange() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
||||
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", dependency).build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("org.foo:bar");
|
||||
request.setBootVersion("1.1.2.RELEASE");
|
||||
request.resolve(metadata);
|
||||
@@ -151,12 +146,11 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveDependencyNotInRange() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = createDependency("org.foo", "bar", "1.2.0.RELEASE");
|
||||
dependency.setVersionRange("[1.0.1.RELEASE, 1.2.0.RELEASE)");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", dependency).build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("org.foo:bar");
|
||||
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"));
|
||||
dependency.getMappings().add(Mapping.create(
|
||||
"1.1.0.RELEASE", null, null, "0.2.0.RELEASE"));
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addDependencyGroup("code", dependency).build();
|
||||
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setBootVersion("1.0.5.RELEASE");
|
||||
request.getStyle().add("org.foo:bar");
|
||||
request.resolve(metadata);
|
||||
@@ -193,31 +187,25 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveBuild() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setType("gradle-project");
|
||||
|
||||
request.resolve(metadata);
|
||||
assertEquals("gradle", request.getBuild());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveBuildNoTag() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addType("foo", false, "/foo.zip", null, null).build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setType("foo");
|
||||
|
||||
request.resolve(metadata);
|
||||
assertNull(request.getBuild());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveUnknownType() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setType("foo-project");
|
||||
|
||||
thrown.expect(InvalidProjectRequestException.class);
|
||||
@@ -227,10 +215,8 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveApplicationNameWithNoName() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setName(null);
|
||||
request.resolve(metadata);
|
||||
assertEquals(metadata.getConfiguration().getEnv().getFallbackApplicationName(),
|
||||
request.getApplicationName());
|
||||
@@ -238,60 +224,96 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveApplicationName() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setName("Foo2");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
|
||||
request.resolve(metadata);
|
||||
assertEquals("Foo2Application", request.getApplicationName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveApplicationNameWithApplicationNameSet() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setName("Foo2");
|
||||
request.setApplicationName("MyApplicationName");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
|
||||
request.resolve(metadata);
|
||||
assertEquals("MyApplicationName", request.getApplicationName());
|
||||
}
|
||||
|
||||
@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();
|
||||
request.setPackageName("org.foo.42bar");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
|
||||
request.resolve(metadata);
|
||||
assertThat(request.getPackageName()).isEqualTo("org.foo.bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cleanPackageNameWithNoName() {
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.resolve(metadata);
|
||||
assertEquals(metadata.getPackageName().getContent(), request.getPackageName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cleanPackageName() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.setPackageName("com:foo bar");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.build();
|
||||
|
||||
request.resolve(metadata);
|
||||
assertEquals("com.foo.bar", request.getPackageName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveAdditionalBoms() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = Dependency.withId("foo");
|
||||
dependency.setBom("foo-bom");
|
||||
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
||||
bom.getAdditionalBoms().add("bar-bom");
|
||||
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
||||
"1.1.0");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
||||
.addDependencyGroup("test", dependency).build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("foo");
|
||||
request.resolve(metadata);
|
||||
assertEquals(1, (request.getResolvedDependencies().size()));
|
||||
@@ -302,7 +324,6 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveAdditionalBomsDuplicates() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = Dependency.withId("foo");
|
||||
dependency.setBom("foo-bom");
|
||||
Dependency anotherDependency = Dependency.withId("bar");
|
||||
@@ -311,9 +332,10 @@ public class ProjectRequestTests {
|
||||
bom.getAdditionalBoms().add("bar-bom");
|
||||
BillOfMaterials additionalBom = BillOfMaterials.create("com.example", "bar-bom",
|
||||
"1.1.0");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addBom("foo-bom", bom).addBom("bar-bom", additionalBom)
|
||||
.addDependencyGroup("test", dependency, anotherDependency).build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
||||
request.resolve(metadata);
|
||||
assertEquals(2, request.getResolvedDependencies().size());
|
||||
@@ -324,17 +346,17 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveAdditionalRepositories() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = Dependency.withId("foo");
|
||||
dependency.setBom("foo-bom");
|
||||
dependency.setRepository("foo-repo");
|
||||
BillOfMaterials bom = BillOfMaterials.create("com.example", "foo-bom", "1.0.0");
|
||||
bom.getRepositories().add("bar-repo");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addBom("foo-bom", bom)
|
||||
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
||||
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
||||
.addDependencyGroup("test", dependency).build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().add("foo");
|
||||
request.resolve(metadata);
|
||||
assertEquals(1, request.getResolvedDependencies().size());
|
||||
@@ -350,7 +372,6 @@ public class ProjectRequestTests {
|
||||
|
||||
@Test
|
||||
public void resolveAdditionalRepositoriesDuplicates() {
|
||||
ProjectRequest request = new ProjectRequest();
|
||||
Dependency dependency = Dependency.withId("foo");
|
||||
dependency.setBom("foo-bom");
|
||||
dependency.setRepository("foo-repo");
|
||||
@@ -358,11 +379,12 @@ public class ProjectRequestTests {
|
||||
bom.getRepositories().add("bar-repo");
|
||||
Dependency anotherDependency = Dependency.withId("bar");
|
||||
anotherDependency.setRepository("bar-repo");
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.addBom("foo-bom", bom)
|
||||
.addRepository("foo-repo", "foo-repo", "http://example.com/foo", false)
|
||||
.addRepository("bar-repo", "bar-repo", "http://example.com/bar", false)
|
||||
.addDependencyGroup("test", dependency, anotherDependency).build();
|
||||
ProjectRequest request = initProjectRequest();
|
||||
request.getStyle().addAll(Arrays.asList("foo", "bar"));
|
||||
request.resolve(metadata);
|
||||
assertEquals(2, request.getResolvedDependencies().size());
|
||||
@@ -376,6 +398,12 @@ public class ProjectRequestTests {
|
||||
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) {
|
||||
Dependency expected = new Dependency();
|
||||
expected.asSpringBootStarter(name);
|
||||
|
||||
@@ -124,7 +124,7 @@ public class InitializrConfigurationTests {
|
||||
|
||||
@Test
|
||||
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
|
||||
|
||||
@@ -199,4 +199,17 @@ public class InitializrMetadataTests {
|
||||
builder.build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void stripInvalidCharsFromPackage() {
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().build();
|
||||
metadata.getGroupId().setContent("org.acme");
|
||||
metadata.getArtifactId().setContent("2foo.bar");
|
||||
assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foo.bar");
|
||||
|
||||
metadata = InitializrMetadataTestBuilder.withDefaults().build();
|
||||
metadata.getGroupId().setContent("org.ac-me");
|
||||
metadata.getArtifactId().setContent("foo-bar");
|
||||
assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foobar");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertTrue;
|
||||
*/
|
||||
public class ProjectAssert {
|
||||
|
||||
public static final String DEFAULT_PACKAGE_NAME = "com.example";
|
||||
public static final String DEFAULT_PACKAGE_NAME = "com.example.demo";
|
||||
|
||||
public static final String DEFAULT_APPLICATION_NAME = "DemoApplication";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder
|
||||
import org.springframework.boot.web.support.SpringBootServletInitializer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.SpringApplication
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder
|
||||
import org.springframework.boot.context.web.SpringBootServletInitializer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.support.SpringBootServletInitializer;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example;
|
||||
package com.example.demo;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.context.web.SpringBootServletInitializer;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder
|
||||
import org.springframework.boot.web.support.SpringBootServletInitializer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.SpringApplication
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example
|
||||
package com.example.demo
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder
|
||||
import org.springframework.boot.context.web.SpringBootServletInitializer
|
||||
|
||||
@@ -156,12 +156,24 @@ $(function () {
|
||||
engine.add(data.dependencies);
|
||||
});
|
||||
};
|
||||
var generatePackageName = function() {
|
||||
var groupId = $("#groupId").val();
|
||||
var artifactId = $("#artifactId").val();
|
||||
var package = groupId.concat(".").concat(artifactId)
|
||||
.replace(/-/g, '');
|
||||
$("#packageName").val(package);
|
||||
};
|
||||
refreshDependencies($("#bootVersion").val());
|
||||
$("#type").on('change', function () {
|
||||
$("#form").attr('action', $(this.options[this.selectedIndex]).attr('data-action'))
|
||||
});
|
||||
$("#groupId").on("change", function() {
|
||||
generatePackageName();
|
||||
});
|
||||
$("#artifactId").on('change', function () {
|
||||
$("#name").val($(this).val());
|
||||
$("#baseDir").attr('value', this.value)
|
||||
generatePackageName();
|
||||
});
|
||||
$("#bootVersion").on("change", function (e) {
|
||||
refreshDependencies(this.value);
|
||||
@@ -235,12 +247,6 @@ $(function () {
|
||||
$("#dependencies input[value='" + id + "']").prop('checked', false);
|
||||
removeTag(id);
|
||||
});
|
||||
$("#groupId").on("change", function() {
|
||||
$("#packageName").val($(this).val());
|
||||
});
|
||||
$("#artifactId").on("change", function() {
|
||||
$("#name").val($(this).val());
|
||||
});
|
||||
$("#dependencies input").bind("change", function () {
|
||||
var value = $(this).val()
|
||||
if ($(this).prop('checked')) {
|
||||
@@ -266,7 +272,6 @@ $(function () {
|
||||
e.returnValue = false;
|
||||
}
|
||||
});
|
||||
|
||||
applyParams();
|
||||
if ("onhashchange" in window) {
|
||||
window.onhashchange = function() {
|
||||
@@ -276,5 +281,4 @@ $(function () {
|
||||
applyParams();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -149,8 +149,8 @@ public class ProjectGenerationSmokeTests
|
||||
HomePage page = toHome();
|
||||
page.groupId("org.foo");
|
||||
page.submit();
|
||||
zipProjectAssert(from("demo.zip")).hasBaseDir("demo").isJavaProject("org.foo",
|
||||
"DemoApplication");
|
||||
zipProjectAssert(from("demo.zip")).hasBaseDir("demo")
|
||||
.isJavaProject("org.foo.demo", "DemoApplication");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -159,7 +159,16 @@ public class ProjectGenerationSmokeTests
|
||||
page.artifactId("my-project");
|
||||
page.submit();
|
||||
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
|
||||
@@ -333,7 +342,7 @@ public class ProjectGenerationSmokeTests
|
||||
page.submit();
|
||||
ProjectAssert projectAssert = zipProjectAssert(from("my-project.zip"));
|
||||
projectAssert.hasBaseDir("my-project").isMavenProject()
|
||||
.isJavaProject("com.example.acme", "MyProjectApplication")
|
||||
.isJavaProject("com.example.acme.myproject", "MyProjectApplication")
|
||||
.hasStaticAndTemplatesResources(false).pomAssert()
|
||||
.hasGroupId("com.example.acme").hasArtifactId("my-project")
|
||||
.hasDependenciesCount(2).hasSpringBootStarterRootDependency()
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
"type": "TEXT"
|
||||
},
|
||||
"packageName": {
|
||||
"content": "com.example",
|
||||
"content": "com.example.demo",
|
||||
"description": "root package",
|
||||
"id": "packageName",
|
||||
"title": "Package Name",
|
||||
|
||||
@@ -189,6 +189,6 @@
|
||||
},
|
||||
"packageName": {
|
||||
"type": "text",
|
||||
"default": "com.example"
|
||||
"default": "com.example.demo"
|
||||
}
|
||||
}
|
||||
@@ -227,6 +227,6 @@
|
||||
},
|
||||
"packageName": {
|
||||
"type": "text",
|
||||
"default": "com.example"
|
||||
"default": "com.example.demo"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user