/** * Clean the specified package name if necessary. If the package name cannot be * transformed to a valid package name, the {@code defaultPackageName} is used * instead. * <p> * The package name cannot be cleaned if the specified {@code packageName} is * {@code null} or if it contains an invalid character for a class identifier. * @param packageName the package name * @param defaultPackageName the default package name * @return the cleaned package name * @see Env#getInvalidPackageNames() */ public String cleanPackageName(String packageName, String defaultPackageName) { if (!StringUtils.hasText(packageName)) { return defaultPackageName; } String candidate = cleanPackageName(packageName); if (hasInvalidChar(candidate.replace(".", "")) || this.env.invalidPackageNames.contains(candidate)) { return defaultPackageName; } else { return candidate; } }
@Test void generatePackageNameSimpleUnderscore() { assertThat(this.properties.cleanPackageName("com.my_foo", "com.example")) .isEqualTo("com.my_foo"); }
@Test void generatePackageNameMultipleSpaces() { assertThat(this.properties.cleanPackageName(" com foo ", "com.example")) .isEqualTo("com.foo"); }
@Test void generatePackageNameInvalidStartCharacter() { assertThat(this.properties.cleanPackageName("0com.foo", "com.example")) .isEqualTo("com.foo"); }
@Test void generatePackageNameInvalidPackageName() { assertThat(this.properties.cleanPackageName("org.springframework", "com.example")) .isEqualTo("com.example"); }
@Test void generatePackageNameSimple() { assertThat(this.properties.cleanPackageName("com.foo", "com.example")) .isEqualTo("com.foo"); }
@Test void generatePackageNameMultipleDashers() { assertThat(this.properties.cleanPackageName("com.foo--bar", "com.example")) .isEqualTo("com.foobar"); }
@Test void generatePackageNameNull() { assertThat(this.properties.cleanPackageName(null, "com.example")) .isEqualTo("com.example"); }
@Test void generatePackageNameSimpleColon() { assertThat(this.properties.cleanPackageName("com:foo", "com.example")) .isEqualTo("com.foo"); }
@Test void generatePackageNameVersion() { assertThat(this.properties.cleanPackageName("com.foo.test-1.4.5", "com.example")) .isEqualTo("com.foo.test145"); }
@Override public String getContent() { String value = super.getContent(); 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; }
metadata.getConfiguration().generateApplicationName(getName())); setPackageName(metadata.getConfiguration().cleanPackageName(getPackageName(), metadata.getPackageName().getContent()));