com.liferay.jenkins.results.parser.job.property.BaseGlobJobProperty Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.jenkins.results.parser
Show all versions of com.liferay.jenkins.results.parser
Liferay Jenkins Results Parser
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.jenkins.results.parser.job.property;
import com.liferay.jenkins.results.parser.JenkinsResultsParserUtil;
import com.liferay.jenkins.results.parser.Job;
import com.liferay.jenkins.results.parser.PortalGitWorkingDirectory;
import com.liferay.jenkins.results.parser.PortalTestClassJob;
import java.io.File;
import java.nio.file.PathMatcher;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* @author Michael Hashimoto
*/
public abstract class BaseGlobJobProperty
extends BaseTestDirJobProperty implements GlobJobProperty {
@Override
public List getPathMatchers() {
List pathMatchers =
JenkinsResultsParserUtil.toPathMatchers(
_getWorkingDirectory() + "/", getRelativeGlobs());
pathMatchers.removeAll(Collections.singleton(null));
return pathMatchers;
}
@Override
public List getRelativeGlobs() {
List relativeGlobs = new ArrayList<>();
String value = getValue();
if (JenkinsResultsParserUtil.isNullOrEmpty(value)) {
return relativeGlobs;
}
String relativePath = getRelativePath();
for (String glob : value.split(",")) {
String relativeGlob = relativePath + "/" + glob;
relativeGlob = relativeGlob.replaceAll("/+", "/");
if (relativeGlob.startsWith("/")) {
relativeGlob = relativeGlob.substring(1);
}
relativeGlobs.add(relativeGlob);
}
return relativeGlobs;
}
@Override
public File getTestBaseDir() {
File testBaseDir = super.getTestBaseDir();
if (testBaseDir != null) {
return testBaseDir;
}
Job job = getJob();
if (job instanceof PortalTestClassJob) {
PortalTestClassJob portalTestClassJob = (PortalTestClassJob)job;
PortalGitWorkingDirectory portalGitWorkingDirectory =
portalTestClassJob.getPortalGitWorkingDirectory();
return portalGitWorkingDirectory.getWorkingDirectory();
}
return null;
}
protected BaseGlobJobProperty(
Job job, Type type, File testBaseDir, String basePropertyName,
boolean useBasePropertyName, String testSuiteName,
String testBatchName) {
super(
job, type, testBaseDir, basePropertyName, useBasePropertyName,
testSuiteName, testBatchName);
}
protected BaseGlobJobProperty(
Job job, Type type, File testBaseDir, String basePropertyName,
boolean useBasePropertyName, String testSuiteName, String testBatchName,
String ruleName) {
super(
job, type, testBaseDir, basePropertyName, useBasePropertyName,
testSuiteName, testBatchName, ruleName);
}
protected String getRelativePath() {
File gitWorkingDirectory = _getWorkingDirectory();
File testBaseDir = getTestBaseDir();
if (Objects.equals(gitWorkingDirectory, testBaseDir)) {
return "";
}
return JenkinsResultsParserUtil.getPathRelativeTo(
testBaseDir, gitWorkingDirectory);
}
private File _getWorkingDirectory() {
File testBaseDir = getTestBaseDir();
if (testBaseDir != null) {
return getWorkingDirectory(testBaseDir);
}
Job job = getJob();
if (!(job instanceof PortalTestClassJob)) {
return new File(".");
}
PortalTestClassJob portalTestClassJob = (PortalTestClassJob)job;
PortalGitWorkingDirectory portalGitWorkingDirectory =
portalTestClassJob.getPortalGitWorkingDirectory();
return portalGitWorkingDirectory.getWorkingDirectory();
}
}