public void validate() { if (this.version == null && this.mappings.isEmpty()) { throw new InvalidInitializrMetadataException( "No version available for " + this); } updateVersionRange(VersionParser.DEFAULT); }
/** * Update the available Spring Boot versions with the specified capabilities. * @param versionsMetadata the Spring Boot boot versions metadata to use */ public void updateSpringBootVersions(List<DefaultMetadataElement> versionsMetadata) { this.bootVersions.getContent().clear(); this.bootVersions.getContent().addAll(versionsMetadata); List<Version> bootVersions = this.bootVersions.getContent().stream() .map((it) -> Version.parse(it.getId())).collect(Collectors.toList()); VersionParser parser = new VersionParser(bootVersions); this.dependencies.updateVersionRange(parser); this.configuration.getEnv().getBoms().values() .forEach((it) -> it.updateVersionRange(parser)); this.configuration.getEnv().getKotlin().updateVersionRange(parser); }
@Test void resolveRangeWithVariablePatch() { BillOfMaterials bom = BillOfMaterials.create("com.example", "bom", "1.0.0"); bom.getMappings().add(Mapping.create("[1.3.0.RELEASE,1.3.x.RELEASE]", "1.1.0")); bom.getMappings().add(BillOfMaterials.Mapping .create("[1.3.x.BUILD-SNAPSHOT,1.4.0.RELEASE)", "1.1.1-SNAPSHOT")); bom.validate(); bom.updateVersionRange(new VersionParser(Arrays.asList( Version.parse("1.3.8.RELEASE"), Version.parse("1.3.9.BUILD-SNAPSHOT")))); assertThat(bom.resolve(Version.parse("1.3.8.RELEASE")).getVersion()) .isEqualTo("1.1.0"); assertThat(bom.resolve(Version.parse("1.3.9.RELEASE")).getVersion()) .isEqualTo("1.1.1-SNAPSHOT"); bom.updateVersionRange(new VersionParser(Arrays.asList( Version.parse("1.3.9.RELEASE"), Version.parse("1.3.10.BUILD-SNAPSHOT")))); assertThat(bom.resolve(Version.parse("1.3.8.RELEASE")).getVersion()) .isEqualTo("1.1.0"); assertThat(bom.resolve(Version.parse("1.3.9.RELEASE")).getVersion()) .isEqualTo("1.1.0"); }