mirror of
https://github.com/ethauvin/bld.git
synced 2025-04-25 00:07:12 -07:00
Added support for Maven project.parent properties
This commit is contained in:
parent
92c8cd3033
commit
fec4f68027
2 changed files with 90 additions and 0 deletions
|
@ -250,6 +250,9 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
if (isChildOfProject()) {
|
if (isChildOfProject()) {
|
||||||
addProjectProperty(qName);
|
addProjectProperty(qName);
|
||||||
} else if (isChildOfParent() || isChildOfDependency()) {
|
} else if (isChildOfParent() || isChildOfDependency()) {
|
||||||
|
if (isChildOfProjectParent()) {
|
||||||
|
addProjectParentProperty(qName);
|
||||||
|
}
|
||||||
lastGroupId_ = getCharacterData();
|
lastGroupId_ = getCharacterData();
|
||||||
} else if (collectExclusions_ && isChildOfExclusion()) {
|
} else if (collectExclusions_ && isChildOfExclusion()) {
|
||||||
lastExclusionGroupId_ = getCharacterData();
|
lastExclusionGroupId_ = getCharacterData();
|
||||||
|
@ -259,6 +262,9 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
if (isChildOfProject()) {
|
if (isChildOfProject()) {
|
||||||
addProjectProperty(qName);
|
addProjectProperty(qName);
|
||||||
} else if (isChildOfParent() || isChildOfDependency()) {
|
} else if (isChildOfParent() || isChildOfDependency()) {
|
||||||
|
if (isChildOfProjectParent()) {
|
||||||
|
addProjectParentProperty(qName);
|
||||||
|
}
|
||||||
lastArtifactId_ = getCharacterData();
|
lastArtifactId_ = getCharacterData();
|
||||||
} else if (collectExclusions_ && isChildOfExclusion()) {
|
} else if (collectExclusions_ && isChildOfExclusion()) {
|
||||||
lastExclusionArtifactId_ = getCharacterData();
|
lastExclusionArtifactId_ = getCharacterData();
|
||||||
|
@ -269,6 +275,9 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
addProjectProperty(qName);
|
addProjectProperty(qName);
|
||||||
} else if (isChildOfParent() || isChildOfDependency()) {
|
} else if (isChildOfParent() || isChildOfDependency()) {
|
||||||
lastVersion_ = getCharacterData();
|
lastVersion_ = getCharacterData();
|
||||||
|
if (isChildOfProjectParent()) {
|
||||||
|
addProjectParentProperty(qName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "type" -> {
|
case "type" -> {
|
||||||
|
@ -306,6 +315,13 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
return "project".equals(elementStack_.peek());
|
return "project".equals(elementStack_.peek());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isChildOfProjectParent() {
|
||||||
|
if (elementStack_.size() < 2) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return "parent".equals(elementStack_.peek()) && "project".equals(elementStack_.elementAt(elementStack_.size() - 2));
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isChildOfParent() {
|
private boolean isChildOfParent() {
|
||||||
return "parent".equals(elementStack_.peek());
|
return "parent".equals(elementStack_.peek());
|
||||||
}
|
}
|
||||||
|
@ -322,6 +338,10 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
mavenProperties_.put("project." + name, getCharacterData());
|
mavenProperties_.put("project." + name, getCharacterData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addProjectParentProperty(String name) {
|
||||||
|
mavenProperties_.put("project.parent." + name, getCharacterData());
|
||||||
|
}
|
||||||
|
|
||||||
private String getCharacterData() {
|
private String getCharacterData() {
|
||||||
if (characterData_ == null) {
|
if (characterData_ == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -167,6 +167,26 @@ public class TestDependencyResolver {
|
||||||
org.assertj:assertj-core""", StringUtils.join(dependencies, "\n"));
|
org.assertj:assertj-core""", StringUtils.join(dependencies, "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testGetCompileDependenciesSwagger() {
|
||||||
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("io.swagger.core.v3", "swagger-core", new VersionNumber(2,2,27)));
|
||||||
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
|
assertNotNull(dependencies);
|
||||||
|
assertEquals(11, dependencies.size());
|
||||||
|
assertEquals("""
|
||||||
|
jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|
||||||
|
org.apache.commons:commons-lang3:3.17.0
|
||||||
|
org.slf4j:slf4j-api:2.0.9
|
||||||
|
com.fasterxml.jackson.core:jackson-annotations:2.16.2
|
||||||
|
com.fasterxml.jackson.core:jackson-databind:2.16.2
|
||||||
|
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.16.2
|
||||||
|
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.2
|
||||||
|
io.swagger.core.v3:swagger-annotations:2.2.27
|
||||||
|
org.yaml:snakeyaml:2.3
|
||||||
|
io.swagger.core.v3:swagger-models:2.2.27
|
||||||
|
jakarta.validation:jakarta.validation-api:2.0.2""", StringUtils.join(dependencies, "\n"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesJettyOverride1() {
|
void testGetCompileDependenciesJettyOverride1() {
|
||||||
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.16")),
|
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.16")),
|
||||||
|
@ -1051,6 +1071,56 @@ public class TestDependencyResolver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testTransferDependencySwagger()
|
||||||
|
throws Exception {
|
||||||
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("io.swagger.core.v3", "swagger-core", new VersionNumber(2,2,27)));
|
||||||
|
var tmp1 = Files.createTempDirectory("transfers").toFile();
|
||||||
|
var tmp2 = Files.createTempDirectory("modules").toFile();
|
||||||
|
try {
|
||||||
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp1, tmp2);
|
||||||
|
assertEquals("""
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-core/2.2.27/swagger-core-2.2.27.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.17.0/commons-lang3-3.17.0.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.16.2/jackson-annotations-2.16.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.16.2/jackson-databind-2.16.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.16.2/jackson-dataformat-yaml-2.16.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.16.2/jackson-datatype-jsr310-2.16.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-annotations/2.2.27/swagger-annotations-2.2.27.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/yaml/snakeyaml/2.3/snakeyaml-2.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-models/2.2.27/swagger-models-2.2.27.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.16.2/jackson-core-2.16.2.jar""", StringUtils.join(result, "\n"));
|
||||||
|
|
||||||
|
var files = FileUtils.getFileList(tmp1);
|
||||||
|
assertEquals(14, files.size());
|
||||||
|
Collections.sort(files);
|
||||||
|
assertEquals("""
|
||||||
|
commons-lang3-3.17.0.jar
|
||||||
|
jackson-annotations-2.16.2.jar
|
||||||
|
jackson-core-2.16.2.jar
|
||||||
|
jackson-databind-2.16.2.jar
|
||||||
|
jackson-dataformat-yaml-2.16.2.jar
|
||||||
|
jackson-datatype-jsr310-2.16.2.jar
|
||||||
|
jakarta.activation-api-1.2.2.jar
|
||||||
|
jakarta.validation-api-2.0.2.jar
|
||||||
|
jakarta.xml.bind-api-2.3.3.jar
|
||||||
|
slf4j-api-2.0.9.jar
|
||||||
|
snakeyaml-2.3.jar
|
||||||
|
swagger-annotations-2.2.27.jar
|
||||||
|
swagger-core-2.2.27.jar
|
||||||
|
swagger-models-2.2.27.jar""", StringUtils.join(files, "\n"));
|
||||||
|
|
||||||
|
assertTrue(FileUtils.getFileList(tmp2).isEmpty());
|
||||||
|
} finally {
|
||||||
|
FileUtils.deleteDirectory(tmp1);
|
||||||
|
FileUtils.deleteDirectory(tmp2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyGoogleApi()
|
void testTransferDependencyGoogleApi()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue