Skip to content

Commit b59b6ea

Browse files
committed
Fix Module search by dependency GAV
1 parent 1498b92 commit b59b6ea

File tree

5 files changed

+25
-5
lines changed

5 files changed

+25
-5
lines changed

components/sbm-core/src/main/java/org/springframework/sbm/build/api/ApplicationModules.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,11 @@ public boolean isSingleModuleApplication() {
177177
public Map<Scope, List<Module>> findModulesWithDeclaredDependencyTo(String gav) {
178178
Map<Scope, List<Module>> dependantModules = new HashMap<>();
179179
for (Module m : this.modules) {
180-
Optional<Dependency> declaredDependency = m.getBuildFile().findDeclaredDependency(gav);
180+
Optional<Dependency> declaredDependency = m.getBuildFile().findRequestedDependency(gav);
181181
if (declaredDependency.isPresent()) {
182182
Dependency dependency = declaredDependency.get();
183183
String scopeStr = dependency.getScope();
184-
Scope scope = scopeStr != null ? Scope.valueOf(scopeStr) : Scope.Compile;
184+
Scope scope = scopeStr != null ? Scope.valueOf(uppercaseFirstChar(scopeStr)) : Scope.Compile;
185185
if(dependantModules.containsKey(scope)) {
186186
dependantModules.get(scope).add(m);
187187
} else {
@@ -193,4 +193,10 @@ public Map<Scope, List<Module>> findModulesWithDeclaredDependencyTo(String gav)
193193
}
194194
return dependantModules;
195195
}
196+
197+
// TODO: provide in common util class
198+
String uppercaseFirstChar(String name) {
199+
if (name.isEmpty()) return name;
200+
return Character.toUpperCase(name.charAt(0)) + name.substring(1);
201+
}
196202
}

components/sbm-core/src/main/java/org/springframework/sbm/build/api/BuildFile.java

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ public interface BuildFile extends ProjectResource {
4242
*/
4343
List<Dependency> getRequestedDependencies();
4444

45+
/**
46+
* Searches for a requested dependency matching the given GAV.
47+
*/
48+
Optional<Dependency> findRequestedDependency(String gav);
49+
4550
/**
4651
* Returns any available dependency (declared or transitive) with given scope.
4752
*/
@@ -201,4 +206,5 @@ default String getGav() {
201206
* @throws IllegalStateException when no dependency with given gav exists.
202207
*/
203208
Dependency getDeclaredDependency(String gav);
209+
204210
}

components/sbm-core/src/main/java/org/springframework/sbm/build/impl/OpenRewriteMavenBuildFile.java

+7
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,13 @@ public List<Dependency> getRequestedDependencies() {
346346
.collect(Collectors.toList());
347347
}
348348

349+
@Override
350+
public Optional<Dependency> findRequestedDependency(String gav) {
351+
return getRequestedDependencies().stream()
352+
.filter(d -> d.getGav().equals(gav))
353+
.findFirst();
354+
}
355+
349356
/**
350357
* {@inheritDoc}
351358
*

components/sbm-core/src/main/java/org/springframework/sbm/project/parser/MavenProjectParser.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.springframework.sbm.build.impl.MavenBuildFileUtil;
3939
import org.springframework.sbm.build.impl.RewriteMavenParser;
4040
import org.springframework.sbm.engine.events.*;
41+
import org.springframework.sbm.parsers.RewriteMavenProjectParser;
4142
import org.springframework.sbm.parsers.RewriteProjectParser;
4243
import org.springframework.sbm.scopes.ProjectMetadata;
4344
import org.springframework.stereotype.Component;
@@ -71,10 +72,10 @@ public class MavenProjectParser {
7172
private final MavenConfigHandler mavenConfigHandler;
7273
private final ProjectMetadata projectMetadata;
7374
private final ExecutionContext executionContext;
74-
private final RewriteProjectParser parser;
75+
private final RewriteMavenProjectParser parser;
7576

7677
public List<SourceFile> parse(Path projectDirectory, List<Resource> resources) {
77-
return parser.parse(projectDirectory, resources, executionContext).sourceFiles();
78+
return parser.parse(projectDirectory).sourceFiles();
7879
}
7980

8081

components/sbm-core/src/test/java/org/springframework/sbm/build/api/ApplicationModulesTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ void componentModule() {
170170
@Test
171171
@DisplayName("should return depending modules")
172172
void shouldReturnDependingModules() {
173-
Map<Scope, List<Module>> modulesWithDeclaredDependencyTo = sut.findModulesWithDeclaredDependencyTo("com.example:module2:1.0-SNAPSHOT");
173+
Map<Scope, List<Module>> modulesWithDeclaredDependencyTo = sut.findModulesWithDeclaredDependencyTo("org.example:module2:1.0-SNAPSHOT");
174174
assertThat(modulesWithDeclaredDependencyTo.containsKey(Scope.Compile)).isTrue();
175175
}
176176

0 commit comments

Comments
 (0)