Skip to content

Commit 7557c22

Browse files
Artem Eroshenkobaev
authored andcommitted
support for allure.properties file (via allure-framework#57)
1 parent aea8ba7 commit 7557c22

3 files changed

Lines changed: 44 additions & 2 deletions

File tree

allure-java-commons/src/main/java/io/qameta/allure/AllureLifecycle.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import io.qameta.allure.model.TestResult;
1414
import io.qameta.allure.model.TestResultContainer;
1515
import io.qameta.allure.model.WithAttachments;
16+
import io.qameta.allure.util.PropertiesUtils;
1617
import org.slf4j.Logger;
1718
import org.slf4j.LoggerFactory;
1819

@@ -21,6 +22,7 @@
2122
import java.nio.file.Paths;
2223
import java.util.Objects;
2324
import java.util.Optional;
25+
import java.util.Properties;
2426
import java.util.UUID;
2527
import java.util.function.Consumer;
2628

@@ -263,7 +265,8 @@ private boolean isEmpty(final String s) {
263265
}
264266

265267
private static FileSystemResultsWriter getDefaultWriter() {
266-
final String path = System.getProperty("allure.results.directory", "allure-results");
268+
final Properties properties = PropertiesUtils.loadAllureProperties();
269+
final String path = properties.getProperty("allure.results.directory", "allure-results");
267270
return new FileSystemResultsWriter(Paths.get(path));
268271
}
269272
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.qameta.allure.util;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import java.io.IOException;
7+
import java.io.InputStream;
8+
import java.util.Objects;
9+
import java.util.Properties;
10+
11+
/**
12+
* The collection of properties utils methods.
13+
*/
14+
public final class PropertiesUtils {
15+
16+
private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesUtils.class);
17+
18+
private static final String ALLURE_PROPERTIES_FILE = "allure.properties";
19+
20+
private PropertiesUtils() {
21+
}
22+
23+
public static Properties loadAllureProperties() {
24+
final Properties properties = new Properties();
25+
if (Objects.nonNull(ClassLoader.getSystemResource(ALLURE_PROPERTIES_FILE))) {
26+
try (InputStream stream = ClassLoader.getSystemResourceAsStream(ALLURE_PROPERTIES_FILE)) {
27+
properties.load(stream);
28+
} catch (IOException e) {
29+
LOGGER.error("Error while reading allure.properties file from classpath: %s", e.getMessage());
30+
}
31+
}
32+
properties.putAll(System.getProperties());
33+
return properties;
34+
}
35+
36+
}

allure-java-commons/src/main/java/io/qameta/allure/util/ResultsUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import java.util.List;
3333
import java.util.Objects;
3434
import java.util.Optional;
35+
import java.util.Properties;
3536
import java.util.stream.Collectors;
3637
import java.util.stream.Stream;
3738

@@ -154,7 +155,8 @@ public static String getLinkTypePatternPropertyName(final String type) {
154155
}
155156

156157
private static String getLinkUrl(final String name, final String type) {
157-
final String pattern = System.getProperty(getLinkTypePatternPropertyName(type));
158+
final Properties properties = PropertiesUtils.loadAllureProperties();
159+
final String pattern = properties.getProperty(getLinkTypePatternPropertyName(type));
158160
if (Objects.isNull(pattern)) {
159161
return null;
160162
}
@@ -221,5 +223,6 @@ public static String generateMethodSignatureHash(final String methodName, final
221223
final String signature = methodName + parameterTypes.stream().collect(Collectors.joining(" "));
222224
return Base64.getUrlEncoder().encodeToString(hasher.digest(signature.getBytes(StandardCharsets.UTF_8)));
223225
}
226+
224227
}
225228

0 commit comments

Comments
 (0)