Skip to content
Snippets Groups Projects
Commit 8012bb31 authored by Vincent Massol's avatar Vincent Massol
Browse files

XWIKI-16218: Extra JARs only work for platform JARs

parent 83fda333
No related branches found
No related tags found
No related merge requests found
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
*/ */
public class TestConfiguration public class TestConfiguration
{ {
private static final Pattern ARTIFACT_COORD_PATTERN = Pattern.compile("([^: ]+):([^: ]+)"); private static final Pattern ARTIFACT_COORD_PATTERN = Pattern.compile("([^: ]+):([^: ]+)(?::([^: ]+))?");
private static final String DEFAULT = "default"; private static final String DEFAULT = "default";
...@@ -294,6 +294,7 @@ private void resolveExtraJARs() ...@@ -294,6 +294,7 @@ private void resolveExtraJARs()
List<String> jarCoordinates = new ArrayList<>(); List<String> jarCoordinates = new ArrayList<>();
jarCoordinates.add(matcher.group(1)); jarCoordinates.add(matcher.group(1));
jarCoordinates.add(matcher.group(2)); jarCoordinates.add(matcher.group(2));
jarCoordinates.add(matcher.group(3));
newExtraJARs.add(jarCoordinates); newExtraJARs.add(jarCoordinates);
} }
this.extraJARs = newExtraJARs; this.extraJARs = newExtraJARs;
......
...@@ -181,9 +181,15 @@ private List<Artifact> computeExtraArtifacts(TestConfiguration testConfiguration ...@@ -181,9 +181,15 @@ private List<Artifact> computeExtraArtifacts(TestConfiguration testConfiguration
List<Artifact> artifacts = new ArrayList<>(); List<Artifact> artifacts = new ArrayList<>();
if (!testConfiguration.getExtraJARs().isEmpty()) { if (!testConfiguration.getExtraJARs().isEmpty()) {
for (List<String> jarData : testConfiguration.getExtraJARs()) { for (List<String> jarData : testConfiguration.getExtraJARs()) {
LOGGER.info("Adding extra JAR to WEB-INF/lib: [{}:{}]", jarData.get(0), jarData.get(1)); // When no version is specified, we use the version from the current pom.xml since that's the most
Artifact artifact = new DefaultArtifact(jarData.get(0), jarData.get(1), JAR, // common obvious use case.
this.mavenResolver.getPlatformVersion()); String version = jarData.get(2);
if (version == null) {
version = this.mavenResolver.getModelFromCurrentPOM().getVersion();
}
LOGGER.info("Adding extra JAR to WEB-INF/lib: [{}:{}], version [{}]", jarData.get(0), jarData.get(1),
version);
Artifact artifact = new DefaultArtifact(jarData.get(0), jarData.get(1), JAR, version);
artifacts.add(artifact); artifacts.add(artifact);
} }
} }
......
...@@ -40,6 +40,16 @@ public class SampleAnnotation ...@@ -40,6 +40,16 @@ public class SampleAnnotation
{ {
} }
@UITest(extraJARs = { "a:b:c" })
public class AnnotationWithExtraJARAndVersion
{
}
@UITest(extraJARs = { "a:b" })
public class AnnotationWithExtraJARWithoutVersion
{
}
@BeforeEach @BeforeEach
public void setUp() public void setUp()
{ {
...@@ -98,4 +108,26 @@ public void getConfigurationWhenInSystemPropertiesAndInAnnotation() ...@@ -98,4 +108,26 @@ public void getConfigurationWhenInSystemPropertiesAndInAnnotation()
assertTrue(configuration.isVerbose()); assertTrue(configuration.isVerbose());
assertEquals("otherversion", configuration.getDatabaseTag()); assertEquals("otherversion", configuration.getDatabaseTag());
} }
@Test
public void getConfigurationWhenExtraJARWithVersion()
{
UITest uiTest = AnnotationWithExtraJARAndVersion.class.getAnnotation(UITest.class);
TestConfiguration configuration = new TestConfiguration(uiTest);
assertEquals("a", configuration.getExtraJARs().get(0).get(0));
assertEquals("b", configuration.getExtraJARs().get(0).get(1));
assertEquals("c", configuration.getExtraJARs().get(0).get(2));
}
@Test
public void getConfigurationWhenExtraJARWithoutVersion()
{
UITest uiTest = AnnotationWithExtraJARWithoutVersion.class.getAnnotation(UITest.class);
TestConfiguration configuration = new TestConfiguration(uiTest);
assertEquals("a", configuration.getExtraJARs().get(0).get(0));
assertEquals("b", configuration.getExtraJARs().get(0).get(1));
assertNull(configuration.getExtraJARs().get(0).get(2));
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment