Restore dependency-tools API compatibility
Refactor dependency-tools to restore API compatibility with Spring Boot 1.0. This should reduce reflection hacks that tools such as Gretty would otherwise have to make. See gh-1035pull/1052/head
parent
f1d216a33b
commit
9b982dabdb
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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
|
||||
*
|
||||
* http://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 org.springframework.boot.dependency.tools;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* Interface for accessing a known set of dependencies.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @see Dependency
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public interface Dependencies extends Iterable<Dependency> {
|
||||
|
||||
/**
|
||||
* Find a single dependency for the given group and artifact IDs.
|
||||
* @param groupId the group ID
|
||||
* @param artifactId the artifact ID
|
||||
* @return a {@link Dependency} or {@code null}
|
||||
*/
|
||||
public Dependency find(String groupId, String artifactId);
|
||||
|
||||
/**
|
||||
* Find a single dependency for the artifact IDs.
|
||||
* @param artifactId the artifact ID
|
||||
* @return a {@link Dependency} or {@code null}
|
||||
*/
|
||||
public Dependency find(String artifactId);
|
||||
|
||||
/**
|
||||
* Provide an {@link Iterator} over all managed {@link Dependency Dependencies}.
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Dependency> iterator();
|
||||
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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
|
||||
*
|
||||
* http://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 org.springframework.boot.dependency.tools;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* {@link Dependencies} delegate used internally by {@link ManagedDependencies}.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @since 1.1.0
|
||||
*/
|
||||
class ManagedDependenciesDelegate extends AbstractDependencies {
|
||||
|
||||
private static Dependencies springBootDependencies;
|
||||
|
||||
/**
|
||||
* Create a new {@link ManagedDependenciesDelegate} instance with optional version
|
||||
* managed dependencies.
|
||||
* @param versionManagedDependencies a collection of {@link Dependencies} that take
|
||||
* precedence over the `spring-boot-dependencies`.
|
||||
*/
|
||||
public ManagedDependenciesDelegate(Collection<Dependencies> versionManagedDependencies) {
|
||||
this(getSpringBootDependencies(), versionManagedDependencies);
|
||||
}
|
||||
|
||||
ManagedDependenciesDelegate(Dependencies rootDependencies,
|
||||
Collection<Dependencies> versionManagedDependencies) {
|
||||
addAll(rootDependencies);
|
||||
if (versionManagedDependencies != null) {
|
||||
for (Dependencies managedDependencies : versionManagedDependencies) {
|
||||
addAll(managedDependencies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addAll(Dependencies dependencies) {
|
||||
for (Dependency dependency : dependencies) {
|
||||
add(new ArtifactAndGroupId(dependency), dependency);
|
||||
}
|
||||
}
|
||||
|
||||
private static Dependencies getSpringBootDependencies() {
|
||||
if (springBootDependencies == null) {
|
||||
springBootDependencies = new PomDependencies(getResource("effective-pom.xml"));
|
||||
}
|
||||
return springBootDependencies;
|
||||
}
|
||||
|
||||
private static InputStream getResource(String name) {
|
||||
InputStream inputStream = ManagedDependenciesDelegate.class
|
||||
.getResourceAsStream(name);
|
||||
Assert.notNull(inputStream, "Unable to load " + name);
|
||||
return inputStream;
|
||||
}
|
||||
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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
|
||||
*
|
||||
* http://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 org.springframework.boot.dependency.tools;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* {@link ManagedDependencies} used by various spring boot tools. Provides programmatic
|
||||
* access to 'spring-boot-dependencies' and can also support user defined version managed
|
||||
* dependencies.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public class VersionManagedDependencies extends AbstractManagedDependencies {
|
||||
|
||||
private static ManagedDependencies springBootDependencies;
|
||||
|
||||
/**
|
||||
* Create a new {@link VersionManagedDependencies} instance for
|
||||
* 'spring-boot-dependencies'.
|
||||
*/
|
||||
public VersionManagedDependencies() {
|
||||
this(Collections.<ManagedDependencies> emptySet());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new {@link VersionManagedDependencies} instance with optional version
|
||||
* managed dependencies.
|
||||
* @param versionManagedDependencies a collection of {@link ManagedDependencies} that
|
||||
* take precedence over the `spring-boot-dependencies`.
|
||||
*/
|
||||
public VersionManagedDependencies(
|
||||
Collection<ManagedDependencies> versionManagedDependencies) {
|
||||
this(getSpringBootDependencies(), versionManagedDependencies);
|
||||
}
|
||||
|
||||
VersionManagedDependencies(ManagedDependencies rootDependencies,
|
||||
Collection<ManagedDependencies> versionManagedDependencies) {
|
||||
addAll(rootDependencies);
|
||||
if (versionManagedDependencies != null) {
|
||||
for (ManagedDependencies managedDependencies : versionManagedDependencies) {
|
||||
addAll(managedDependencies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addAll(ManagedDependencies dependencies) {
|
||||
for (Dependency dependency : dependencies) {
|
||||
add(new ArtifactAndGroupId(dependency), dependency);
|
||||
}
|
||||
}
|
||||
|
||||
private static ManagedDependencies getSpringBootDependencies() {
|
||||
if (springBootDependencies == null) {
|
||||
springBootDependencies = new PomManagedDependencies(
|
||||
getResource("effective-pom.xml"));
|
||||
}
|
||||
return springBootDependencies;
|
||||
}
|
||||
|
||||
private static InputStream getResource(String name) {
|
||||
InputStream inputStream = VersionManagedDependencies.class
|
||||
.getResourceAsStream(name);
|
||||
Assert.notNull(inputStream, "Unable to load " + name);
|
||||
return inputStream;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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
|
||||
*
|
||||
* http://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 org.springframework.boot.dependency.tools;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
/**
|
||||
* Tests for {@link ManagedDependencies}.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
*/
|
||||
public class ManagedDependenciesTests {
|
||||
|
||||
private ManagedDependencies managedDependencies;
|
||||
|
||||
private Dependencies delegate;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
this.delegate = mock(Dependencies.class);
|
||||
this.managedDependencies = new ManagedDependencies(this.delegate) {
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void getVersion() throws Exception {
|
||||
this.managedDependencies.getVersion();
|
||||
verify(this.delegate).find("org.springframework.boot", "spring-boot");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSpringBootVersion() throws Exception {
|
||||
this.managedDependencies.getSpringBootVersion();
|
||||
verify(this.delegate).find("org.springframework.boot", "spring-boot");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findGroupIdArtifactId() throws Exception {
|
||||
this.managedDependencies.find("groupId", "artifactId");
|
||||
verify(this.delegate).find("groupId", "artifactId");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findArtifactId() throws Exception {
|
||||
this.managedDependencies.find("artifactId");
|
||||
verify(this.delegate).find("artifactId");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void iterator() throws Exception {
|
||||
this.managedDependencies.iterator();
|
||||
verify(this.delegate).iterator();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue