mirror of
https://gitee.com/dcren/initializr.git
synced 2025-05-07 06:08:04 +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);
|
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.
|
* The group ID of the dependency.
|
||||||
* @return the group ID
|
* @return the group ID
|
||||||
@ -163,11 +168,23 @@ public class Dependency {
|
|||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public B exclusions(Set<Exclusion> exclusions) {
|
||||||
|
this.exclusions = (exclusions != null) ? new LinkedHashSet<>(exclusions)
|
||||||
|
: new LinkedHashSet<>();
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
protected B self() {
|
protected B self() {
|
||||||
return (B) this;
|
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() {
|
public Dependency build() {
|
||||||
return new Dependency(this);
|
return new Dependency(this);
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,11 @@ public class GradleDependency extends Dependency {
|
|||||||
return new Builder(groupId, artifactId);
|
return new Builder(groupId, artifactId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Builder from(Dependency dependency) {
|
||||||
|
return new Builder(dependency.getGroupId(), dependency.getArtifactId())
|
||||||
|
.initialize(dependency);
|
||||||
|
}
|
||||||
|
|
||||||
public String getConfiguration() {
|
public String getConfiguration() {
|
||||||
return this.configuration;
|
return this.configuration;
|
||||||
}
|
}
|
||||||
@ -59,7 +64,16 @@ public class GradleDependency extends Dependency {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
return new GradleDependency(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,11 @@ public class MavenDependency extends Dependency {
|
|||||||
return new Builder(groupId, artifactId);
|
return new Builder(groupId, artifactId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Builder from(Dependency dependency) {
|
||||||
|
return new Builder(dependency.getGroupId(), dependency.getArtifactId())
|
||||||
|
.initialize(dependency);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isOptional() {
|
public boolean isOptional() {
|
||||||
return this.optional;
|
return this.optional;
|
||||||
}
|
}
|
||||||
@ -59,7 +64,16 @@ public class MavenDependency extends Dependency {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
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