mirror of
https://gitee.com/dcren/initializr.git
synced 2025-05-06 21:58:08 +08:00
Allow to initialize a dependency builder from an existing dependency
This commit is contained in:
parent
31b60a6955
commit
e063405b92
@ -58,6 +58,11 @@ public class Dependency {
|
||||
return new Builder(groupId, artifactId);
|
||||
}
|
||||
|
||||
public static Builder<?> from(Dependency dependency) {
|
||||
return new Builder(dependency.getGroupId(), dependency.getArtifactId())
|
||||
.initialize(dependency);
|
||||
}
|
||||
|
||||
/**
|
||||
* The group ID of the dependency.
|
||||
* @return the group ID
|
||||
@ -163,11 +168,23 @@ public class Dependency {
|
||||
return self();
|
||||
}
|
||||
|
||||
public B exclusions(Set<Exclusion> exclusions) {
|
||||
this.exclusions = (exclusions != null) ? new LinkedHashSet<>(exclusions)
|
||||
: new LinkedHashSet<>();
|
||||
return self();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected B self() {
|
||||
return (B) this;
|
||||
}
|
||||
|
||||
protected B initialize(Dependency dependency) {
|
||||
version(dependency.getVersion()).scope(dependency.getScope())
|
||||
.type(dependency.getType()).exclusions(dependency.getExclusions());
|
||||
return self();
|
||||
}
|
||||
|
||||
public Dependency build() {
|
||||
return new Dependency(this);
|
||||
}
|
||||
|
@ -36,6 +36,11 @@ public class GradleDependency extends Dependency {
|
||||
return new Builder(groupId, artifactId);
|
||||
}
|
||||
|
||||
public static Builder from(Dependency dependency) {
|
||||
return new Builder(dependency.getGroupId(), dependency.getArtifactId())
|
||||
.initialize(dependency);
|
||||
}
|
||||
|
||||
public String getConfiguration() {
|
||||
return this.configuration;
|
||||
}
|
||||
@ -59,7 +64,16 @@ public class GradleDependency extends Dependency {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dependency build() {
|
||||
protected Builder initialize(Dependency dependency) {
|
||||
super.initialize(dependency);
|
||||
if (dependency instanceof GradleDependency) {
|
||||
configuration(((GradleDependency) dependency).getConfiguration());
|
||||
}
|
||||
return self();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GradleDependency build() {
|
||||
return new GradleDependency(this);
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,11 @@ public class MavenDependency extends Dependency {
|
||||
return new Builder(groupId, artifactId);
|
||||
}
|
||||
|
||||
public static Builder from(Dependency dependency) {
|
||||
return new Builder(dependency.getGroupId(), dependency.getArtifactId())
|
||||
.initialize(dependency);
|
||||
}
|
||||
|
||||
public boolean isOptional() {
|
||||
return this.optional;
|
||||
}
|
||||
@ -59,7 +64,16 @@ public class MavenDependency extends Dependency {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dependency build() {
|
||||
protected Builder initialize(Dependency dependency) {
|
||||
super.initialize(dependency);
|
||||
if (dependency instanceof MavenDependency) {
|
||||
optional(((MavenDependency) dependency).isOptional());
|
||||
}
|
||||
return self();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MavenDependency build() {
|
||||
return new MavenDependency(this);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.spring.initializr.generator.buildsystem.gradle;
|
||||
|
||||
import io.spring.initializr.generator.buildsystem.Dependency;
|
||||
import io.spring.initializr.generator.buildsystem.DependencyScope;
|
||||
import io.spring.initializr.generator.version.VersionReference;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link GradleDependency}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
class GradleDependencyTests {
|
||||
|
||||
@Test
|
||||
void initializeFromStandardDependency() {
|
||||
Dependency original = Dependency.withCoordinates("com.example", "test")
|
||||
.version(VersionReference.ofValue("1.0.0")).scope(DependencyScope.RUNTIME)
|
||||
.type("zip").build();
|
||||
GradleDependency dependency = GradleDependency.from(original).build();
|
||||
assertThat(original).isNotSameAs(dependency);
|
||||
assertThat(dependency.getGroupId()).isEqualTo("com.example");
|
||||
assertThat(dependency.getArtifactId()).isEqualTo("test");
|
||||
assertThat(dependency.getVersion()).isEqualTo(VersionReference.ofValue("1.0.0"));
|
||||
assertThat(dependency.getScope()).isEqualTo(DependencyScope.RUNTIME);
|
||||
assertThat(dependency.getType()).isEqualTo("zip");
|
||||
assertThat(dependency.getConfiguration()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void initializeFromMavenDependency() {
|
||||
Dependency original = GradleDependency.withCoordinates("com.example", "test")
|
||||
.version(VersionReference.ofValue("1.0.0")).scope(DependencyScope.RUNTIME)
|
||||
.type("zip").configuration("myConfiguration").build();
|
||||
GradleDependency dependency = GradleDependency.from(original).build();
|
||||
assertThat(original).isNotSameAs(dependency);
|
||||
assertThat(dependency.getGroupId()).isEqualTo("com.example");
|
||||
assertThat(dependency.getArtifactId()).isEqualTo("test");
|
||||
assertThat(dependency.getVersion()).isEqualTo(VersionReference.ofValue("1.0.0"));
|
||||
assertThat(dependency.getScope()).isEqualTo(DependencyScope.RUNTIME);
|
||||
assertThat(dependency.getType()).isEqualTo("zip");
|
||||
assertThat(dependency.getConfiguration()).isEqualTo("myConfiguration");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.spring.initializr.generator.buildsystem.maven;
|
||||
|
||||
import io.spring.initializr.generator.buildsystem.Dependency;
|
||||
import io.spring.initializr.generator.buildsystem.DependencyScope;
|
||||
import io.spring.initializr.generator.version.VersionReference;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link MavenDependency}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
class MavenDependencyTests {
|
||||
|
||||
@Test
|
||||
void initializeFromStandardDependency() {
|
||||
Dependency original = Dependency.withCoordinates("com.example", "test")
|
||||
.version(VersionReference.ofValue("1.0.0")).scope(DependencyScope.RUNTIME)
|
||||
.type("zip").build();
|
||||
MavenDependency dependency = MavenDependency.from(original).build();
|
||||
assertThat(original).isNotSameAs(dependency);
|
||||
assertThat(dependency.getGroupId()).isEqualTo("com.example");
|
||||
assertThat(dependency.getArtifactId()).isEqualTo("test");
|
||||
assertThat(dependency.getVersion()).isEqualTo(VersionReference.ofValue("1.0.0"));
|
||||
assertThat(dependency.getScope()).isEqualTo(DependencyScope.RUNTIME);
|
||||
assertThat(dependency.getType()).isEqualTo("zip");
|
||||
assertThat(dependency.isOptional()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void initializeFromMavenDependency() {
|
||||
Dependency original = MavenDependency.withCoordinates("com.example", "test")
|
||||
.version(VersionReference.ofValue("1.0.0")).scope(DependencyScope.RUNTIME)
|
||||
.type("zip").optional(true).build();
|
||||
MavenDependency dependency = MavenDependency.from(original).build();
|
||||
assertThat(original).isNotSameAs(dependency);
|
||||
assertThat(dependency.getGroupId()).isEqualTo("com.example");
|
||||
assertThat(dependency.getArtifactId()).isEqualTo("test");
|
||||
assertThat(dependency.getVersion()).isEqualTo(VersionReference.ofValue("1.0.0"));
|
||||
assertThat(dependency.getScope()).isEqualTo(DependencyScope.RUNTIME);
|
||||
assertThat(dependency.getType()).isEqualTo("zip");
|
||||
assertThat(dependency.isOptional()).isTrue();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user