Skip to content

Commit 0d347f1

Browse files
committed
Fix for WFGP-270, Add testing of FeaturePackBuildModelParser
1 parent 0092265 commit 0d347f1

File tree

2 files changed

+230
-0
lines changed

2 files changed

+230
-0
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
/*
2+
* Copyright The WildFly Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package org.wildfly.galleon.maven;
6+
7+
import java.io.InputStream;
8+
import java.nio.file.Files;
9+
import java.nio.file.Paths;
10+
import org.jboss.galleon.config.ConfigId;
11+
import org.jboss.galleon.config.ConfigModel;
12+
import org.jboss.galleon.universe.FeaturePackLocation;
13+
import org.junit.Assert;
14+
import org.junit.Test;
15+
import org.wildfly.galleon.plugin.ArtifactCoords;
16+
17+
/**
18+
*
19+
* @author jdenise
20+
*/
21+
public class FeaturePackBuildModelParserTestCase {
22+
23+
@Test
24+
public void testParseAll() throws Exception {
25+
FeaturePackBuildModelParser parser = new FeaturePackBuildModelParser();
26+
WildFlyFeaturePackBuild build;
27+
try (InputStream stream = Files.newInputStream(Paths.get("src/test/resources/xml/test-feature-pack-build.xml"))) {
28+
build = parser.parse(stream);
29+
}
30+
Assert.assertEquals("level-1", build.getStabilityLevel());
31+
Assert.assertEquals("level-2", build.getMinimumStabilityLevel());
32+
Assert.assertEquals("level-3", build.getConfigStabilityLevel());
33+
Assert.assertEquals("level-4", build.getPackageStabilityLevel());
34+
35+
Assert.assertEquals(3, build.getSystemPaths().size());
36+
Assert.assertTrue(build.getSystemPaths().contains("system-path-1"));
37+
Assert.assertTrue(build.getSystemPaths().contains("system-path-2"));
38+
Assert.assertTrue(build.getSystemPaths().contains("system-path-3"));
39+
40+
Assert.assertEquals(3, build.getStandaloneExtensions().size());
41+
Assert.assertTrue(build.getStandaloneExtensions().contains("standalone-extension-1"));
42+
Assert.assertTrue(build.getStandaloneExtensions().contains("standalone-extension-1"));
43+
Assert.assertTrue(build.getStandaloneExtensions().contains("standalone-extension-1"));
44+
45+
Assert.assertEquals(3, build.getDomainExtensions().size());
46+
Assert.assertTrue(build.getDomainExtensions().contains("domain-extension-1"));
47+
Assert.assertTrue(build.getDomainExtensions().contains("domain-extension-1"));
48+
Assert.assertTrue(build.getDomainExtensions().contains("domain-extension-1"));
49+
50+
Assert.assertEquals(3, build.getHostExtensions().size());
51+
Assert.assertTrue(build.getHostExtensions().contains("host-extension-1"));
52+
Assert.assertTrue(build.getHostExtensions().contains("host-extension-1"));
53+
Assert.assertTrue(build.getHostExtensions().contains("host-extension-1"));
54+
55+
Assert.assertEquals(3, build.getResourcesTasks().size());
56+
57+
Assert.assertEquals(4, build.getPlugins().size());
58+
Assert.assertTrue(build.getPlugins().get("artifactId1").equals(ArtifactCoordsUtil.fromJBossModules("grpoupId1:artifactId1", "jar")));
59+
Assert.assertTrue(build.getPlugins().get("plugin1").equals(ArtifactCoordsUtil.fromJBossModules("grpoupId2:artifactId2:2.0", "jar")));
60+
Assert.assertTrue(build.getPlugins().get("plugin2").equals(ArtifactCoordsUtil.fromJBossModules("grpoupId3:artifactId3:3.0:classifier3", "jar")));
61+
Assert.assertTrue(build.getPlugins().get("plugin3").equals(ArtifactCoordsUtil.fromJBossModules("grpoupId3:artifactId3:3.0:classifier3:zip", "jar")));
62+
63+
Assert.assertEquals(6, build.getDependencies().size());
64+
65+
FeaturePackDependencySpec spec1 = build.getDependencies().get(ArtifactCoords.newGav("groupId-1:artifactId-1"));
66+
Assert.assertEquals("dependency-1", spec1.getName());
67+
Assert.assertEquals(Boolean.TRUE, spec1.getTarget().getInheritConfigs());
68+
Assert.assertEquals(true, spec1.getTarget().isInheritModelOnlyConfigs());
69+
Assert.assertTrue(spec1.getTarget().getIncludedConfigs().contains(new ConfigId("model-1", "default-config-1")));
70+
Assert.assertEquals(1, spec1.getTarget().getDefinedConfigs().size());
71+
Assert.assertTrue(spec1.getTarget().getDefinedConfigs().toArray(new ConfigModel[1])[0].isInheritFeatures());
72+
73+
Assert.assertEquals(3, spec1.getTarget().getPatches().size());
74+
Assert.assertTrue(spec1.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch1:1").getFPID()));
75+
Assert.assertTrue(spec1.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch2:2").getFPID()));
76+
Assert.assertTrue(spec1.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch3:3").getFPID()));
77+
78+
Assert.assertEquals(3, spec1.getTarget().getIncludedPackages().size());
79+
Assert.assertTrue(spec1.getTarget().getIncludedPackages().contains("package-1"));
80+
Assert.assertTrue(spec1.getTarget().getIncludedPackages().contains("package-2"));
81+
Assert.assertTrue(spec1.getTarget().getIncludedPackages().contains("package-3"));
82+
83+
Assert.assertEquals(3, spec1.getTarget().getExcludedPackages().size());
84+
Assert.assertTrue(spec1.getTarget().getExcludedPackages().contains("package-4"));
85+
Assert.assertTrue(spec1.getTarget().getExcludedPackages().contains("package-5"));
86+
Assert.assertTrue(spec1.getTarget().getExcludedPackages().contains("package-6"));
87+
88+
FeaturePackDependencySpec spec2 = build.getDependencies().get(ArtifactCoords.newGav("groupId-2:artifactId-2"));
89+
Assert.assertNull(spec2.getName());
90+
91+
FeaturePackDependencySpec spec3 = build.getDependencies().get(ArtifactCoords.newGav("groupId-3:artifactId-3"));
92+
Assert.assertNull(spec3.getName());
93+
94+
FeaturePackDependencySpec spec4 = build.getDependencies().get(ArtifactCoords.newGav("tgroupId-1:tartifactId-1"));
95+
Assert.assertEquals("transitive-1", spec4.getName());
96+
Assert.assertEquals(Boolean.TRUE, spec4.getTarget().getInheritConfigs());
97+
Assert.assertEquals(true, spec4.getTarget().isInheritModelOnlyConfigs());
98+
Assert.assertTrue(spec4.getTarget().getIncludedConfigs().contains(new ConfigId("model-1", "default-config-1")));
99+
100+
Assert.assertEquals(3, spec4.getTarget().getPatches().size());
101+
Assert.assertTrue(spec4.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch1:1").getFPID()));
102+
Assert.assertTrue(spec4.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch2:2").getFPID()));
103+
Assert.assertTrue(spec4.getTarget().getPatches().contains(FeaturePackLocation.fromString("org:patch3:3").getFPID()));
104+
105+
Assert.assertEquals(3, spec4.getTarget().getIncludedPackages().size());
106+
Assert.assertTrue(spec4.getTarget().getIncludedPackages().contains("package-1"));
107+
Assert.assertTrue(spec4.getTarget().getIncludedPackages().contains("package-2"));
108+
Assert.assertTrue(spec4.getTarget().getIncludedPackages().contains("package-3"));
109+
110+
Assert.assertEquals(3, spec4.getTarget().getExcludedPackages().size());
111+
Assert.assertTrue(spec4.getTarget().getExcludedPackages().contains("package-4"));
112+
Assert.assertTrue(spec4.getTarget().getExcludedPackages().contains("package-5"));
113+
Assert.assertTrue(spec4.getTarget().getExcludedPackages().contains("package-6"));
114+
115+
FeaturePackDependencySpec spec5 = build.getDependencies().get(ArtifactCoords.newGav("tgroupId-2:tartifactId-2"));
116+
Assert.assertNull(spec5.getName());
117+
118+
FeaturePackDependencySpec spec6 = build.getDependencies().get(ArtifactCoords.newGav("tgroupId-3:tartifactId-3"));
119+
Assert.assertNull(spec6.getName());
120+
}
121+
122+
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<!--
2+
~ Copyright The WildFly Authors
3+
~ SPDX-License-Identifier: Apache-2.0
4+
-->
5+
6+
<build xmlns="urn:wildfly:feature-pack-build:3.4" producer="foo@maven(org.jboss.universe:community-universe):latest">
7+
<dependencies>
8+
<dependency group-id="groupId-1" artifact-id="artifactId-1" translate-to-fpl="true">
9+
<name>dependency-1</name>
10+
<default-configs inherit="true" inherit-unnamed-models="true">
11+
<include name="default-config-1" model="model-1"/>
12+
</default-configs>
13+
<config name="config-1" model="model-1" inherit-features="true"/>
14+
<patches>
15+
<patch id="org:patch1:1"/>
16+
<patch id="org:patch2:2"/>
17+
<patch id="org:patch3:3"/>
18+
</patches>
19+
<packages>
20+
<include name="package-1"/>
21+
<include name="package-2"/>
22+
<include name="package-3"/>
23+
<exclude name="package-4"/>
24+
<exclude name="package-5"/>
25+
<exclude name="package-6"/>
26+
</packages>
27+
</dependency>
28+
<dependency group-id="groupId-2" artifact-id="artifactId-2" translate-to-fpl="false"/>
29+
<dependency group-id="groupId-3" artifact-id="artifactId-3" translate-to-fpl="false"/>
30+
</dependencies>
31+
<default-packages>
32+
<package name="package-1"/>
33+
<package name="package-2"/>
34+
<package name="package-3"/>
35+
</default-packages>
36+
<package-schemas>
37+
<group name="package-schema-1"/>
38+
<group name="package-schema-2"/>
39+
<group name="package-schema-3"/>
40+
</package-schemas>
41+
<config name="config-1.xml" model="model-1" inherit-features="true"/>
42+
<config name="config-2.xml" model="model-2"/>
43+
<config name="config-3.xml" model="model-3"/>
44+
<transitive>
45+
<dependency group-id="tgroupId-1" artifact-id="tartifactId-1" translate-to-fpl="true">
46+
<name>transitive-1</name>
47+
<default-configs inherit="true" inherit-unnamed-models="true">
48+
<include name="default-config-1" model="model-1"/>
49+
</default-configs>
50+
<patches>
51+
<patch id="org:patch1:1"/>
52+
<patch id="org:patch2:2"/>
53+
<patch id="org:patch3:3"/>
54+
</patches>
55+
<packages>
56+
<include name="package-1"/>
57+
<include name="package-2"/>
58+
<include name="package-3"/>
59+
<exclude name="package-4"/>
60+
<exclude name="package-5"/>
61+
<exclude name="package-6"/>
62+
</packages>
63+
</dependency>
64+
<dependency group-id="tgroupId-2" artifact-id="tartifactId-2" translate-to-fpl="false"/>
65+
<dependency group-id="tgroupId-3" artifact-id="tartifactId-3" translate-to-fpl="false"/>
66+
</transitive>
67+
<plugins>
68+
<plugin artifact="grpoupId1:artifactId1"/>
69+
<plugin id="plugin1" artifact="grpoupId2:artifactId2:2.0"/>
70+
<plugin id="plugin2" artifact="grpoupId3:artifactId3:3.0:classifier3"/>
71+
<plugin id="plugin3" artifact="grpoupId3:artifactId3:3.0:classifier3:zip"/>
72+
</plugins>
73+
<resources>
74+
<copy to="to1" artifact="grpoupId2:artifactId2:2.0"/>
75+
<copy to="to2" artifact="grpoupId3:artifactId3:3.0:classifier3"/>
76+
<copy to="to3" artifact="grpoupId3:artifactId3:3.0:classifier3:zip"/>
77+
</resources>
78+
<generate-feature-specs>
79+
<extensions>
80+
<standalone>
81+
<extension>standalone-extension-1</extension>
82+
<extension>standalone-extension-2</extension>
83+
<extension>standalone-extension-3</extension>
84+
</standalone>
85+
<domain>
86+
<extension>domain-extension-1</extension>
87+
<extension>domain-extension-2</extension>
88+
<extension>domain-extension-3</extension>
89+
</domain>
90+
<host>
91+
<extension>host-extension-1</extension>
92+
<extension>host-extension-2</extension>
93+
<extension>host-extension-3</extension>
94+
</host>
95+
</extensions>
96+
</generate-feature-specs>
97+
<system-paths>
98+
<system-path path="system-path-1"/>
99+
<system-path path="system-path-2"/>
100+
<system-path path="system-path-3"/>
101+
</system-paths>
102+
<stability-levels>
103+
<stability-level>level-1</stability-level>
104+
<minimum-stability-level>level-2</minimum-stability-level>
105+
<config-stability-level>level-3</config-stability-level>
106+
<package-stability-level>level-4</package-stability-level>
107+
</stability-levels>
108+
</build>

0 commit comments

Comments
 (0)