Skip to content

Commit e02d58d

Browse files
committed
[AB]: Add option to specify maven settings.xml
1 parent a48f914 commit e02d58d

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

experimental/src/main/java/org/jboss/bacon/experimental/impl/config/DependencyResolutionConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jboss.bacon.experimental.impl.config;
22

3+
import java.nio.file.Path;
34
import java.util.List;
45
import java.util.Set;
56

@@ -67,4 +68,9 @@ public class DependencyResolutionConfig {
6768
* suffix). This is useful to make sure whole dependency tree is build correctly.
6869
*/
6970
private boolean rebuildNonAutoBuilds = false;
71+
72+
/**
73+
* Path to the maven settings.xml file to use instead of the system one.
74+
*/
75+
private Path mavenSettings;
7076
}

experimental/src/main/java/org/jboss/bacon/experimental/impl/dependencies/DependencyResolver.java

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import io.quarkus.bom.decomposer.ReleaseId;
3232
import io.quarkus.bom.decomposer.ReleaseOrigin;
3333
import io.quarkus.bom.decomposer.ReleaseVersion;
34+
import io.quarkus.bootstrap.resolver.maven.BootstrapMavenContext;
35+
import io.quarkus.bootstrap.resolver.maven.BootstrapMavenContextConfig;
3436
import io.quarkus.bootstrap.resolver.maven.BootstrapMavenException;
3537
import io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver;
3638
import io.quarkus.devtools.messagewriter.MessageWriter;
@@ -91,6 +93,16 @@ private void setupConfig(ProjectDependencyConfig.Mutable dominoConfig) {
9193
}
9294

9395
public DependencyResult resolve(Path projectDir, Path dominoConfigFile) {
96+
ProjectDependencyResolver resolver = configureResolver(projectDir, dominoConfigFile);
97+
98+
PrintStream origOut = System.out;
99+
System.setOut(new PrintStream(new LogOutputStream()));
100+
ReleaseCollection releaseCollection = resolver.getReleaseCollection();
101+
System.setOut(origOut);
102+
return parseReleaseCollection(releaseCollection);
103+
}
104+
105+
private ProjectDependencyResolver configureResolver(Path projectDir, Path dominoConfigFile) {
94106
ProjectDependencyConfig.Mutable dominoConfig;
95107
if (dominoConfigFile == null) {
96108
dominoConfig = ProjectDependencyConfig.builder();
@@ -102,21 +114,19 @@ public DependencyResult resolve(Path projectDir, Path dominoConfigFile) {
102114
}
103115
}
104116
ProjectDependencyResolver.Builder resolverBuilder = ProjectDependencyResolver.builder();
117+
if (config.getMavenSettings() != null) {
118+
resolverBuilder.setUserMavenSettings(config.getMavenSettings());
119+
}
105120
if (projectDir != null) {
106121
dominoConfig.setProjectDir(projectDir);
107122
resolverBuilder.setArtifactResolver(getArtifactResolver(projectDir));
108123
}
109124
setupConfig(dominoConfig);
110125
ProjectDependencyConfig conf = dominoConfig.build();
111126
logDominoConfig(conf);
112-
ProjectDependencyResolver resolver = resolverBuilder.setMessageWriter(new Slf4jMessageWriter())
127+
return resolverBuilder.setMessageWriter(new Slf4jMessageWriter())
113128
.setDependencyConfig(conf)
114129
.build();
115-
PrintStream origOut = System.out;
116-
System.setOut(new PrintStream(new LogOutputStream()));
117-
ReleaseCollection releaseCollection = resolver.getReleaseCollection();
118-
System.setOut(origOut);
119-
return parseReleaseCollection(releaseCollection);
120130
}
121131

122132
private void logDominoConfig(ProjectDependencyConfig conf) {
@@ -132,11 +142,14 @@ private void logDominoConfig(ProjectDependencyConfig conf) {
132142

133143
protected MavenArtifactResolver getArtifactResolver(Path projectDir) {
134144
try {
135-
return MavenArtifactResolver.builder()
145+
MavenArtifactResolver.Builder builder = MavenArtifactResolver.builder()
136146
.setCurrentProject(projectDir.toAbsolutePath().toString())
137147
.setEffectiveModelBuilder(true)
138-
.setPreferPomsFromWorkspace(true)
139-
.build();
148+
.setPreferPomsFromWorkspace(true);
149+
if (config.getMavenSettings() != null) {
150+
builder.setUserSettings(config.getMavenSettings().toFile());
151+
}
152+
return builder.build();
140153
} catch (BootstrapMavenException e) {
141154
throw new RuntimeException("Failed to initialize Maven artifact resolver", e);
142155
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
<commons-configuration2.version>2.12.0</commons-configuration2.version>
8181
<commons-io.version>2.19.0</commons-io.version>
8282
<compiler.plugin.version>3.12.1</compiler.plugin.version>
83-
<domino.version>0.0.120</domino.version>
83+
<domino.version>0.0.121</domino.version>
8484
<enforcer.plugin.version>3.5.0</enforcer.plugin.version>
8585
<glassfish-jaxb.version>2.3.1</glassfish-jaxb.version>
8686
<glassfish-json.version>1.1.4</glassfish-json.version>

0 commit comments

Comments
 (0)