Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
c2c451d3
Commit
c2c451d3
authored
Nov 11, 2015
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4319 from mbenson/interpolate-profile-properties
* pr/4319: Interpolate property values for repositories
parents
5df80792
5e7376fb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
80 additions
and
5 deletions
+80
-5
RepositoryConfigurationFactory.java
...ork/boot/cli/compiler/RepositoryConfigurationFactory.java
+29
-5
RepositoryConfigurationFactoryTests.java
...oot/cli/compiler/RepositoryConfigurationFactoryTests.java
+15
-0
settings.xml
...ven-settings/active-profile-repositories/.m2/settings.xml
+36
-0
No files found.
spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/RepositoryConfigurationFactory.java
View file @
c2c451d3
...
@@ -23,6 +23,10 @@ import java.util.List;
...
@@ -23,6 +23,10 @@ import java.util.List;
import
org.apache.maven.settings.Profile
;
import
org.apache.maven.settings.Profile
;
import
org.apache.maven.settings.Repository
;
import
org.apache.maven.settings.Repository
;
import
org.codehaus.plexus.interpolation.InterpolationException
;
import
org.codehaus.plexus.interpolation.Interpolator
;
import
org.codehaus.plexus.interpolation.PropertiesBasedValueSource
;
import
org.codehaus.plexus.interpolation.RegexBasedInterpolator
;
import
org.springframework.boot.cli.compiler.grape.RepositoryConfiguration
;
import
org.springframework.boot.cli.compiler.grape.RepositoryConfiguration
;
import
org.springframework.boot.cli.compiler.maven.MavenSettings
;
import
org.springframework.boot.cli.compiler.maven.MavenSettings
;
...
@@ -78,17 +82,37 @@ public final class RepositoryConfigurationFactory {
...
@@ -78,17 +82,37 @@ public final class RepositoryConfigurationFactory {
}
}
private
static
void
addActiveProfileRepositories
(
List
<
Profile
>
activeProfiles
,
private
static
void
addActiveProfileRepositories
(
List
<
Profile
>
activeProfiles
,
List
<
RepositoryConfiguration
>
repositoryConfiguration
)
{
List
<
RepositoryConfiguration
>
configurations
)
{
for
(
Profile
activeProfile
:
activeProfiles
)
{
for
(
Profile
activeProfile
:
activeProfiles
)
{
Interpolator
interpolator
=
new
RegexBasedInterpolator
();
interpolator
.
addValueSource
(
new
PropertiesBasedValueSource
(
activeProfile
.
getProperties
()));
for
(
Repository
repository
:
activeProfile
.
getRepositories
())
{
for
(
Repository
repository
:
activeProfile
.
getRepositories
())
{
repositoryConfiguration
.
add
(
new
RepositoryConfiguration
(
configurations
.
add
(
getRepositoryConfiguration
(
interpolator
,
repository
));
repository
.
getId
(),
URI
.
create
(
repository
.
getUrl
()),
repository
.
getSnapshots
()
!=
null
?
repository
.
getSnapshots
().
isEnabled
()
:
false
));
}
}
}
}
}
}
private
static
RepositoryConfiguration
getRepositoryConfiguration
(
Interpolator
interpolator
,
Repository
repository
)
{
String
name
=
interpolate
(
interpolator
,
repository
.
getId
());
String
url
=
interpolate
(
interpolator
,
repository
.
getUrl
());
boolean
snapshotsEnabled
=
false
;
if
(
repository
.
getSnapshots
()
!=
null
)
{
snapshotsEnabled
=
repository
.
getSnapshots
().
isEnabled
();
}
return
new
RepositoryConfiguration
(
name
,
URI
.
create
(
url
),
snapshotsEnabled
);
}
private
static
String
interpolate
(
Interpolator
interpolator
,
String
value
)
{
try
{
return
interpolator
.
interpolate
(
value
);
}
catch
(
InterpolationException
ex
)
{
return
value
;
}
}
private
static
File
getLocalRepositoryDirectory
(
String
localRepository
)
{
private
static
File
getLocalRepositoryDirectory
(
String
localRepository
)
{
if
(
StringUtils
.
hasText
(
localRepository
))
{
if
(
StringUtils
.
hasText
(
localRepository
))
{
return
new
File
(
localRepository
);
return
new
File
(
localRepository
);
...
...
spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/RepositoryConfigurationFactoryTests.java
View file @
c2c451d3
...
@@ -90,6 +90,21 @@ public class RepositoryConfigurationFactoryTests {
...
@@ -90,6 +90,21 @@ public class RepositoryConfigurationFactoryTests {
"foo:bar"
);
"foo:bar"
);
}
}
@Test
public
void
interpolationProfileRepositories
()
{
SystemProperties
.
doWithSystemProperties
(
new
Runnable
()
{
@Override
public
void
run
()
{
List
<
RepositoryConfiguration
>
repositoryConfiguration
=
RepositoryConfigurationFactory
.
createDefaultRepositoryConfiguration
();
assertRepositoryConfiguration
(
repositoryConfiguration
,
"central"
,
"local"
,
"spring-snapshot"
,
"spring-milestone"
,
"interpolate-releases"
,
"interpolate-snapshots"
);
}
},
"user.home:src/test/resources/maven-settings/active-profile-repositories"
,
"interpolate:true"
);
}
private
void
assertRepositoryConfiguration
(
private
void
assertRepositoryConfiguration
(
List
<
RepositoryConfiguration
>
configurations
,
String
...
expectedNames
)
{
List
<
RepositoryConfiguration
>
configurations
,
String
...
expectedNames
)
{
assertThat
(
configurations
,
hasSize
(
expectedNames
.
length
));
assertThat
(
configurations
,
hasSize
(
expectedNames
.
length
));
...
...
spring-boot-cli/src/test/resources/maven-settings/active-profile-repositories/.m2/settings.xml
View file @
c2c451d3
...
@@ -56,6 +56,42 @@
...
@@ -56,6 +56,42 @@
</repository>
</repository>
</repositories>
</repositories>
</profile>
</profile>
<profile>
<id>
interpolation-profile
</id>
<activation>
<property>
<name>
interpolate
</name>
<value>
true
</value>
</property>
</activation>
<properties>
<repo.base>
maven.example.com
</repo.base>
<repo.content>
${repo.base}/content
</repo.content>
</properties>
<repositories>
<repository>
<id>
interpolate-releases
</id>
<url>
${repo.content}/releases
</url>
<releases>
<enabled>
true
</enabled>
<updatePolicy>
never
</updatePolicy>
</releases>
<snapshots>
<enabled>
false
</enabled>
</snapshots>
</repository>
<repository>
<id>
interpolate-snapshots
</id>
<url>
${repo.content}/snapshots
</url>
<releases>
<enabled>
false
</enabled>
</releases>
<snapshots>
<enabled>
true
</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</profiles>
</settings>
</settings>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment