protected void text(ObjectNode parent, TextCapability capability) { ObjectNode text = nodeFactory.objectNode(); text.put("type", capability.getType().getName()); String defaultValue = capability.getContent(); if (StringUtils.hasText(defaultValue)) { text.put("default", defaultValue); } parent.set(capability.getId(), text); }
@Test void mergeTitle() { TextCapability capability = new TextCapability("foo", "Foo", "my desc"); capability.merge(new TextCapability("foo", "AnotherFoo", "")); assertThat(capability.getId()).isEqualTo("foo"); assertThat(capability.getType()).isEqualTo(ServiceCapabilityType.TEXT); assertThat(capability.getTitle()).isEqualTo("AnotherFoo"); assertThat(capability.getDescription()).isEqualTo("my desc"); }
/** * Apply defaults to capabilities that have no value. * @param metadata the initializr metadata */ protected void applyDefaults(InitializrMetadata metadata) { if (!StringUtils.hasText(metadata.getName().getContent())) { metadata.getName().setContent("demo"); } if (!StringUtils.hasText(metadata.getDescription().getContent())) { metadata.getDescription().setContent("Demo project for Spring Boot"); } if (!StringUtils.hasText(metadata.getGroupId().getContent())) { metadata.getGroupId().setContent("com.example"); } if (!StringUtils.hasText(metadata.getVersion().getContent())) { metadata.getVersion().setContent("0.0.1-SNAPSHOT"); } }
public void apply(TextCapability capability) { if (StringUtils.hasText(this.title)) { capability.setTitle(this.title); } if (StringUtils.hasText(this.description)) { capability.setDescription(this.description); } if (StringUtils.hasText(this.value)) { capability.setContent(this.value); } }
@Test void mergeValue() { TextCapability capability = new TextCapability("foo"); capability.setContent("1234"); TextCapability another = new TextCapability("foo"); another.setContent("4567"); capability.merge(another); assertThat(capability.getId()).isEqualTo("foo"); assertThat(capability.getType()).isEqualTo(ServiceCapabilityType.TEXT); assertThat(capability.getContent()).isEqualTo("4567"); }
@Override public String getContent() { String value = super.getContent(); return (value != null) ? value : this.nameCapability.getContent(); }
/** * Merge this instance with the specified argument. * @param other the other instance */ public void merge(InitializrMetadata other) { this.configuration.merge(other.configuration); this.dependencies.merge(other.dependencies); this.types.merge(other.types); this.bootVersions.merge(other.bootVersions); this.packagings.merge(other.packagings); this.javaVersions.merge(other.javaVersions); this.languages.merge(other.languages); this.name.merge(other.name); this.description.merge(other.description); this.groupId.merge(other.groupId); this.artifactId.merge(other.artifactId); this.version.merge(other.version); this.packageName.merge(other.packageName); }
@Test void initializeGroupIdAndArtifactId() { this.metadata = InitializrMetadataBuilder.create().build(); this.metadata.getGroupId().setContent("org.acme"); this.metadata.getArtifactId().setContent("my-project"); ProjectRequest request = initProjectRequest(); assertThat(request.getGroupId()).isEqualTo("org.acme"); assertThat(request.getArtifactId()).isEqualTo("my-project"); }
@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; }
@Test void mergeDescription() { TextCapability capability = new TextCapability("foo", "Foo", "my desc"); capability.merge(new TextCapability("foo", "", "another desc")); assertThat(capability.getId()).isEqualTo("foo"); assertThat(capability.getType()).isEqualTo(ServiceCapabilityType.TEXT); assertThat(capability.getTitle()).isEqualTo("Foo"); assertThat(capability.getDescription()).isEqualTo("another desc"); }
/** * Return the defaults for the capabilities defined on this instance. * @return the default capabilities */ public Map<String, Object> defaults() { Map<String, Object> defaults = new LinkedHashMap<>(); defaults.put("type", defaultId(this.types)); defaults.put("bootVersion", defaultId(this.bootVersions)); defaults.put("packaging", defaultId(this.packagings)); defaults.put("javaVersion", defaultId(this.javaVersions)); defaults.put("language", defaultId(this.languages)); defaults.put("groupId", this.groupId.getContent()); defaults.put("artifactId", this.artifactId.getContent()); defaults.put("version", this.version.getContent()); defaults.put("name", this.name.getContent()); defaults.put("description", this.description.getContent()); defaults.put("packageName", this.packageName.getContent()); return defaults; }
@Test void stripInvalidCharsFromPackage() { InitializrMetadata metadata = initializeMetadata(); metadata.getGroupId().setContent("org.acme"); metadata.getArtifactId().setContent("2foo.bar"); assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foo.bar"); metadata = initializeMetadata(); metadata.getGroupId().setContent("org.ac-me"); metadata.getArtifactId().setContent("foo-bar"); assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foobar"); }
protected Map<String, Object> initializeCommandLineModel(InitializrMetadata metadata, String serviceUrl) { Map<String, Object> model = new LinkedHashMap<>(); model.put("logo", LOGO); model.put("serviceUrl", serviceUrl); model.put("dependencies", generateDependencyTable(metadata)); model.put("types", generateTypeTable(metadata, "Rel", false)); Map<String, Object> defaults = metadata.defaults(); defaults.put("applicationName", metadata.getConfiguration() .generateApplicationName(metadata.getName().getContent())); defaults.put("baseDir", "no base dir"); defaults.put("dependencies", "none"); Map<String, Object> parametersDescription = buildParametersDescription(metadata); String[][] parameterTable = new String[defaults.size() + 1][]; parameterTable[0] = new String[] { "Parameter", "Description", "Default value" }; int i = 1; for (String id : defaults.keySet().stream().sorted() .collect(Collectors.toList())) { String[] data = new String[3]; data[0] = id; data[1] = (String) parametersDescription.get(id); data[2] = (String) defaults.get(id); parameterTable[i++] = data; } model.put("parameters", TableGenerator.generate(parameterTable)); return model; }
@Test void mergeConfig() { InitializrProperties config = load( new ClassPathResource("application-test-default.yml")); InitializrProperties customDefaultsConfig = load( new ClassPathResource("application-test-custom-defaults.yml")); InitializrMetadata metadata = InitializrMetadataBuilder .fromInitializrProperties(config) .withInitializrProperties(customDefaultsConfig).build(); assertDefaultConfig(metadata); assertThat(metadata.getGroupId().getContent()).isEqualTo("org.foo"); assertThat(metadata.getArtifactId().getContent()).isEqualTo("foo-bar"); assertThat(metadata.getVersion().getContent()).isEqualTo("1.2.4-SNAPSHOT"); assertThat(metadata.getName().getContent()).isEqualTo("FooBar"); assertThat(metadata.getDescription().getContent()).isEqualTo("FooBar Project"); assertThat(metadata.getPackageName().getContent()).isEqualTo("org.foo.demo"); }
@Test void mergeMetadata() { InitializrMetadata metadata = InitializrMetadataBuilder.create() .withInitializrMetadata( new ClassPathResource("metadata/config/test-min.json")) .build(); assertThat(metadata.getConfiguration().getEnv().isForceSsl()).isEqualTo(true); assertThat(metadata.getDependencies().getContent()).hasSize(1); Dependency dependency = metadata.getDependencies().get("test"); assertThat(dependency).isNotNull(); assertThat(dependency.getGroupId()).isEqualTo("org.springframework.boot"); assertThat(metadata.getTypes().getContent()).hasSize(1); assertThat(metadata.getBootVersions().getContent()).hasSize(2); assertThat(metadata.getPackagings().getContent()).hasSize(2); assertThat(metadata.getJavaVersions().getContent()).hasSize(1); assertThat(metadata.getLanguages().getContent()).hasSize(3); assertThat(metadata.getName().getContent()).isEqualTo("metadata-merge"); assertThat(metadata.getDescription().getContent()) .isEqualTo("Demo project for metadata merge"); assertThat(metadata.getGroupId().getContent()).isEqualTo("org.acme"); assertThat(metadata.getArtifactId().getContent()).isEqualTo("metadata"); assertThat(metadata.getVersion().getContent()).isEqualTo("1.0.0-SNAPSHOT"); assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.demo"); }
@Test void cleanPackageNameWithNoName() { ProjectRequest request = initProjectRequest(); request.resolve(this.metadata); assertThat(request.getPackageName()) .isEqualTo(this.metadata.getPackageName().getContent()); }
@Test void initializeSetsMetadataDefaults() { ProjectRequest request = initProjectRequest(); assertThat(request.getName()).isEqualTo(this.metadata.getName().getContent()); assertThat(request.getType()) .isEqualTo(this.metadata.getTypes().getDefault().getId()); assertThat(request.getDescription()) .isEqualTo(this.metadata.getDescription().getContent()); assertThat(request.getGroupId()) .isEqualTo(this.metadata.getGroupId().getContent()); assertThat(request.getArtifactId()) .isEqualTo(this.metadata.getArtifactId().getContent()); assertThat(request.getVersion()) .isEqualTo(this.metadata.getVersion().getContent()); assertThat(request.getBootVersion()) .isEqualTo(this.metadata.getBootVersions().getDefault().getId()); assertThat(request.getPackaging()) .isEqualTo(this.metadata.getPackagings().getDefault().getId()); }
metadata.getPackageName().getContent()));