Skip to content

Commit 43a1309

Browse files
committed
Migrate RepositoryConfigurationFactory to spring-boot-aether
1 parent 0237d6e commit 43a1309

File tree

2 files changed

+140
-86
lines changed

2 files changed

+140
-86
lines changed

Diff for: spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/RepositoryConfigurationFactory.java

+10-86
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,10 @@
1616

1717
package org.springframework.boot.cli.compiler;
1818

19-
import java.io.File;
20-
import java.net.URI;
2119
import java.util.ArrayList;
2220
import java.util.List;
2321

24-
import org.apache.maven.settings.Profile;
25-
import org.apache.maven.settings.Repository;
26-
import org.codehaus.plexus.interpolation.InterpolationException;
27-
import org.codehaus.plexus.interpolation.Interpolator;
28-
import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
29-
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
30-
31-
import org.springframework.boot.aether.maven.MavenSettings;
32-
import org.springframework.boot.aether.maven.MavenSettingsReader;
3322
import org.springframework.boot.cli.compiler.grape.RepositoryConfiguration;
34-
import org.springframework.util.StringUtils;
3523

3624
/**
3725
* Factory used to create {@link RepositoryConfiguration}s.
@@ -41,15 +29,6 @@
4129
*/
4230
public final class RepositoryConfigurationFactory {
4331

44-
private static final RepositoryConfiguration MAVEN_CENTRAL = new RepositoryConfiguration(
45-
"central", URI.create("http://repo1.maven.org/maven2/"), false);
46-
47-
private static final RepositoryConfiguration SPRING_MILESTONE = new RepositoryConfiguration(
48-
"spring-milestone", URI.create("http://repo.spring.io/milestone"), false);
49-
50-
private static final RepositoryConfiguration SPRING_SNAPSHOT = new RepositoryConfiguration(
51-
"spring-snapshot", URI.create("http://repo.spring.io/snapshot"), true);
52-
5332
private RepositoryConfigurationFactory() {
5433
}
5534

@@ -58,74 +37,19 @@ private RepositoryConfigurationFactory() {
5837
* @return the newly-created default repository configuration
5938
*/
6039
public static List<RepositoryConfiguration> createDefaultRepositoryConfiguration() {
61-
MavenSettings mavenSettings = new MavenSettingsReader().readSettings();
62-
List<RepositoryConfiguration> repositoryConfiguration = new ArrayList<RepositoryConfiguration>();
63-
repositoryConfiguration.add(MAVEN_CENTRAL);
64-
if (!Boolean.getBoolean("disableSpringSnapshotRepos")) {
65-
repositoryConfiguration.add(SPRING_MILESTONE);
66-
repositoryConfiguration.add(SPRING_SNAPSHOT);
67-
}
68-
addDefaultCacheAsRepository(mavenSettings.getLocalRepository(),
69-
repositoryConfiguration);
70-
addActiveProfileRepositories(mavenSettings.getActiveProfiles(),
71-
repositoryConfiguration);
72-
return repositoryConfiguration;
73-
}
74-
75-
private static void addDefaultCacheAsRepository(String localRepository,
76-
List<RepositoryConfiguration> repositoryConfiguration) {
77-
RepositoryConfiguration repository = new RepositoryConfiguration("local",
78-
getLocalRepositoryDirectory(localRepository).toURI(), true);
79-
if (!repositoryConfiguration.contains(repository)) {
80-
repositoryConfiguration.add(0, repository);
81-
}
82-
}
83-
84-
private static void addActiveProfileRepositories(List<Profile> activeProfiles,
85-
List<RepositoryConfiguration> configurations) {
86-
for (Profile activeProfile : activeProfiles) {
87-
Interpolator interpolator = new RegexBasedInterpolator();
88-
interpolator.addValueSource(
89-
new PropertiesBasedValueSource(activeProfile.getProperties()));
90-
for (Repository repository : activeProfile.getRepositories()) {
91-
configurations.add(getRepositoryConfiguration(interpolator, repository));
92-
}
93-
}
94-
}
95-
96-
private static RepositoryConfiguration getRepositoryConfiguration(
97-
Interpolator interpolator, Repository repository) {
98-
String name = interpolate(interpolator, repository.getId());
99-
String url = interpolate(interpolator, repository.getUrl());
100-
boolean snapshotsEnabled = false;
101-
if (repository.getSnapshots() != null) {
102-
snapshotsEnabled = repository.getSnapshots().isEnabled();
103-
}
104-
return new RepositoryConfiguration(name, URI.create(url), snapshotsEnabled);
105-
}
106-
107-
private static String interpolate(Interpolator interpolator, String value) {
108-
try {
109-
return interpolator.interpolate(value);
110-
}
111-
catch (InterpolationException ex) {
112-
return value;
113-
}
114-
}
115-
116-
private static File getLocalRepositoryDirectory(String localRepository) {
117-
if (StringUtils.hasText(localRepository)) {
118-
return new File(localRepository);
119-
}
120-
return new File(getM2HomeDirectory(), "repository");
40+
return convert(org.springframework.boot.aether.RepositoryConfigurationFactory
41+
.createDefaultRepositoryConfiguration());
12142
}
12243

123-
private static File getM2HomeDirectory() {
124-
String mavenRoot = System.getProperty("maven.home");
125-
if (StringUtils.hasLength(mavenRoot)) {
126-
return new File(mavenRoot);
44+
private static List<RepositoryConfiguration> convert(
45+
List<org.springframework.boot.aether.RepositoryConfiguration> repositoryConfigurations) {
46+
List<RepositoryConfiguration> list = new ArrayList<RepositoryConfiguration>();
47+
for (org.springframework.boot.aether.RepositoryConfiguration repositoryConfiguration : repositoryConfigurations) {
48+
list.add(new RepositoryConfiguration(repositoryConfiguration.getName(),
49+
repositoryConfiguration.getUri(),
50+
repositoryConfiguration.getSnapshotsEnabled()));
12751
}
128-
return new File(System.getProperty("user.home"), ".m2");
52+
return list;
12953
}
13054

13155
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
/*
2+
* Copyright 2012-2015 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.boot.aether;
18+
19+
import java.io.File;
20+
import java.net.URI;
21+
import java.util.ArrayList;
22+
import java.util.List;
23+
24+
import org.apache.maven.settings.Profile;
25+
import org.apache.maven.settings.Repository;
26+
import org.codehaus.plexus.interpolation.InterpolationException;
27+
import org.codehaus.plexus.interpolation.Interpolator;
28+
import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
29+
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
30+
31+
import org.springframework.boot.aether.maven.MavenSettings;
32+
import org.springframework.boot.aether.maven.MavenSettingsReader;
33+
import org.springframework.util.StringUtils;
34+
35+
/**
36+
* Factory used to create {@link RepositoryConfiguration}s.
37+
*
38+
* @author Andy Wilkinson
39+
* @author Dave Syer
40+
*/
41+
public final class RepositoryConfigurationFactory {
42+
43+
private static final RepositoryConfiguration MAVEN_CENTRAL = new RepositoryConfiguration(
44+
"central", URI.create("http://repo1.maven.org/maven2/"), false);
45+
46+
private static final RepositoryConfiguration SPRING_MILESTONE = new RepositoryConfiguration(
47+
"spring-milestone", URI.create("http://repo.spring.io/milestone"), false);
48+
49+
private static final RepositoryConfiguration SPRING_SNAPSHOT = new RepositoryConfiguration(
50+
"spring-snapshot", URI.create("http://repo.spring.io/snapshot"), true);
51+
52+
private RepositoryConfigurationFactory() {
53+
}
54+
55+
/**
56+
* Create a new default repository configuration.
57+
* @return the newly-created default repository configuration
58+
*/
59+
public static List<RepositoryConfiguration> createDefaultRepositoryConfiguration() {
60+
MavenSettings mavenSettings = new MavenSettingsReader().readSettings();
61+
List<RepositoryConfiguration> repositoryConfiguration = new ArrayList<RepositoryConfiguration>();
62+
repositoryConfiguration.add(MAVEN_CENTRAL);
63+
if (!Boolean.getBoolean("disableSpringSnapshotRepos")) {
64+
repositoryConfiguration.add(SPRING_MILESTONE);
65+
repositoryConfiguration.add(SPRING_SNAPSHOT);
66+
}
67+
addDefaultCacheAsRepository(mavenSettings.getLocalRepository(),
68+
repositoryConfiguration);
69+
addActiveProfileRepositories(mavenSettings.getActiveProfiles(),
70+
repositoryConfiguration);
71+
return repositoryConfiguration;
72+
}
73+
74+
private static void addDefaultCacheAsRepository(String localRepository,
75+
List<RepositoryConfiguration> repositoryConfiguration) {
76+
RepositoryConfiguration repository = new RepositoryConfiguration("local",
77+
getLocalRepositoryDirectory(localRepository).toURI(), true);
78+
if (!repositoryConfiguration.contains(repository)) {
79+
repositoryConfiguration.add(0, repository);
80+
}
81+
}
82+
83+
private static void addActiveProfileRepositories(List<Profile> activeProfiles,
84+
List<RepositoryConfiguration> configurations) {
85+
for (Profile activeProfile : activeProfiles) {
86+
Interpolator interpolator = new RegexBasedInterpolator();
87+
interpolator.addValueSource(
88+
new PropertiesBasedValueSource(activeProfile.getProperties()));
89+
for (Repository repository : activeProfile.getRepositories()) {
90+
configurations.add(getRepositoryConfiguration(interpolator, repository));
91+
}
92+
}
93+
}
94+
95+
private static RepositoryConfiguration getRepositoryConfiguration(
96+
Interpolator interpolator, Repository repository) {
97+
String name = interpolate(interpolator, repository.getId());
98+
String url = interpolate(interpolator, repository.getUrl());
99+
boolean snapshotsEnabled = false;
100+
if (repository.getSnapshots() != null) {
101+
snapshotsEnabled = repository.getSnapshots().isEnabled();
102+
}
103+
return new RepositoryConfiguration(name, URI.create(url), snapshotsEnabled);
104+
}
105+
106+
private static String interpolate(Interpolator interpolator, String value) {
107+
try {
108+
return interpolator.interpolate(value);
109+
}
110+
catch (InterpolationException ex) {
111+
return value;
112+
}
113+
}
114+
115+
private static File getLocalRepositoryDirectory(String localRepository) {
116+
if (StringUtils.hasText(localRepository)) {
117+
return new File(localRepository);
118+
}
119+
return new File(getM2HomeDirectory(), "repository");
120+
}
121+
122+
private static File getM2HomeDirectory() {
123+
String mavenRoot = System.getProperty("maven.home");
124+
if (StringUtils.hasLength(mavenRoot)) {
125+
return new File(mavenRoot);
126+
}
127+
return new File(System.getProperty("user.home"), ".m2");
128+
}
129+
130+
}

0 commit comments

Comments
 (0)