/** * Set the repositories that this instance should use based on the * {@link InitializrMetadata} and the requested Spring Boot {@link Version}. * @param metadata the initializr metadata * @param requestedVersion the requested version */ protected void initializeRepositories(InitializrMetadata metadata, Version requestedVersion) { if (!"RELEASE".equals(requestedVersion.getQualifier().getQualifier())) { this.repositories.put("spring-snapshots", metadata.getConfiguration().getEnv() .getRepositories().get("spring-snapshots")); this.repositories.put("spring-milestones", metadata.getConfiguration() .getEnv().getRepositories().get("spring-milestones")); } this.boms.values().forEach((it) -> it.getRepositories().forEach((key) -> { this.repositories.computeIfAbsent(key, (s) -> metadata.getConfiguration().getEnv().getRepositories().get(s)); })); }
if (dependency.getRepository() != null) { repositories.put(dependency.getRepository(), metadata.getConfiguration() .getEnv().getRepositories().get(dependency.getRepository())); for (String id : bom.getRepositories()) { repositories.put(id, metadata.getConfiguration().getEnv().getRepositories().get(id));
@Test void mergeMetadataWithRepository() throws Exception { InitializrMetadata metadata = InitializrMetadataBuilder.create() .withInitializrMetadata( new ClassPathResource("metadata/config/test-repository.json")) .build(); Map<String, Repository> repositories = metadata.getConfiguration().getEnv() .getRepositories(); assertThat(repositories).hasSize(4); // 2 standard repos Repository myRepo = repositories.get("my-repo"); assertThat(myRepo).isNotNull(); assertThat(myRepo.getName()).isEqualTo("my repo"); assertThat(myRepo.getUrl()).isEqualTo(new URL("http://example.com/my")); assertThat(myRepo.isSnapshotsEnabled()).isEqualTo(true); Repository anotherRepo = repositories.get("another-repo"); assertThat(anotherRepo).isNotNull(); assertThat(anotherRepo.getName()).isEqualTo("another repo"); assertThat(anotherRepo.getUrl()).isEqualTo(new URL("http://example.com/another")); assertThat(anotherRepo.isSnapshotsEnabled()).isEqualTo(false); }
String repositoryId = it.getRepository(); this.repositories.computeIfAbsent(repositoryId, (s) -> metadata .getConfiguration().getEnv().getRepositories().get(s));
.getRepositories(); Map<String, BillOfMaterials> boms = this.configuration.getEnv().getBoms(); for (Dependency dependency : this.dependencies.getAll()) {
@Test void resolveAdditionalRepositoriesDuplicates() { 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"); Dependency anotherDependency = Dependency.withId("bar"); anotherDependency.setRepository("bar-repo"); this.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(this.metadata); assertThat(request.getResolvedDependencies()).hasSize(2); assertThat(request.getBoms()).hasSize(1); assertThat(request.getRepositories()).hasSize(2); assertThat(request.getRepositories().get("foo-repo")).isEqualTo(this.metadata .getConfiguration().getEnv().getRepositories().get("foo-repo")); assertThat(request.getRepositories().get("bar-repo")).isEqualTo(this.metadata .getConfiguration().getEnv().getRepositories().get("bar-repo")); }
@Test void resolveAdditionalRepositories() { 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"); this.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(this.metadata); assertThat(request.getResolvedDependencies()).hasSize(1); assertThat(request.getBoms()).hasSize(1); assertThat(request.getRepositories()).hasSize(2); assertThat(request.getRepositories().get("foo-repo")).isEqualTo(this.metadata .getConfiguration().getEnv().getRepositories().get("foo-repo")); assertThat(request.getRepositories().get("bar-repo")).isEqualTo(this.metadata .getConfiguration().getEnv().getRepositories().get("bar-repo")); }
public InitializrMetadataTestBuilder addRepository(String id, String name, String url, boolean snapshotsEnabled) { this.builder.withCustomizer((it) -> { Repository repo = new Repository(); repo.setName(name); try { repo.setUrl(new URL(url)); } catch (MalformedURLException ex) { throw new IllegalArgumentException("Cannot create URL", ex); } repo.setSnapshotsEnabled(snapshotsEnabled); it.getConfiguration().getEnv().getRepositories().put(id, repo); }); return this; }
@Test void addRepoAndRemoveDuplicates() { Dependency first = Dependency.withId("first", "org.foo", "first"); first.setRepository("repo-foo"); Dependency second = Dependency.withId("second", "org.foo", "second"); Dependency third = Dependency.withId("third", "org.foo", "third"); third.setRepository("repo-foo"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addRepository("repo-foo", "my-repo", "http://localhost", false) .addDependencyGroup("test", first, second, third).build(); DependencyMetadata dependencyMetadata = this.provider.get(metadata, Version.parse("1.1.5.RELEASE")); assertThat(dependencyMetadata.getDependencies()).hasSize(3); assertThat(dependencyMetadata.getRepositories()).hasSize(1); assertThat(dependencyMetadata.getBoms()).isEmpty(); assertThat(dependencyMetadata.getRepositories().get("repo-foo")).isSameAs( metadata.getConfiguration().getEnv().getRepositories().get("repo-foo")); }
@Test void invalidRepository() throws MalformedURLException { InitializrMetadata metadata = initializeMetadata(); Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setRepository("foo-repo"); addTestDependencyGroup(metadata, foo); metadata.getConfiguration().getEnv().getRepositories().put("my-repo", new Repository("repo", new URL("http://example.com/repo"), true)); assertThatExceptionOfType(InvalidInitializrMetadataException.class) .isThrownBy(metadata::validate).withMessageContaining("foo-repo") .withMessageContaining("my-repo"); }