diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5be372a8..57bcc793 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,14 @@
# Changelog
## [Unreleased]
+### Added
+- `Description` annotation, by @HardNorth
+- `DisplayName` annotation, by @HardNorth
+- `TmsLink` and `TmsLinks` annotations, by @HardNorth
+- `Issue` and `ExternalIssue` annotations, by @HardNorth
+ - `rp.bts.project`, `rp.bts.url`, `rp.bts.issue.url`, `rp.bts.issue.fail` properties, which controls these annotations, by @HardNorth
+ - `TestFilter`, `TestNameFilter`, `TestParamFilter` annotations to control Issue apply on Parameterized and Dynamic Tests, by @HardNorth
+- `ReportPortalClient.getProjectSettings` method, by @HardNorth
## [5.2.5]
### Added
diff --git a/README.md b/README.md
index 7ec64d04..6200fe4c 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
[![Maven Central](https://img.shields.io/maven-central/v/com.epam.reportportal/client-java.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.epam.reportportal/client-java)
[![CI Build](https://github.com/reportportal/client-java/actions/workflows/ci.yml/badge.svg)](https://github.com/reportportal/client-java/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/reportportal/client-java/branch/develop/graph/badge.svg?token=IVTys0o4JT)](https://codecov.io/gh/reportportal/client-java)
-[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/)
+[![Join Slack chat!](https://img.shields.io/badge/slack-join-brightgreen.svg)](https://slack.epmrpp.reportportal.io/)
[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)
[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
diff --git a/README_TEMPLATE.md b/README_TEMPLATE.md
index 05aaa930..96806176 100644
--- a/README_TEMPLATE.md
+++ b/README_TEMPLATE.md
@@ -7,7 +7,7 @@
[![Maven Central](https://img.shields.io/maven-central/v/com.epam.reportportal/client-java.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.epam.reportportal/client-java)
[![CI Build](https://github.com/reportportal/client-java/actions/workflows/ci.yml/badge.svg)](https://github.com/reportportal/client-java/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/reportportal/client-java/branch/develop/graph/badge.svg?token=IVTys0o4JT)](https://codecov.io/gh/reportportal/client-java)
-[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/)
+[![Join Slack chat!](https://img.shields.io/badge/slack-join-brightgreen.svg)](https://slack.epmrpp.reportportal.io/)
[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)
[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
diff --git a/build.gradle b/build.gradle
index 377351ed..a9e4268a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -80,7 +80,7 @@ dependencies {
exclude group: 'org.hamcrest'
}
testImplementation 'org.apache.commons:commons-io:1.3.2'
- testImplementation 'com.epam.reportportal:agent-java-test-utils:0.0.2'
+ testImplementation 'com.epam.reportportal:agent-java-test-utils:0.0.3'
}
test {
diff --git a/src/main/java/com/epam/reportportal/annotations/Description.java b/src/main/java/com/epam/reportportal/annotations/Description.java
new file mode 100644
index 00000000..eef28f15
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/Description.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * If put on a method or constructor, or class, overrides or set corresponding Test Item description on ReportPortal.
+ * This annotation should be handled in priority to other mechanisms of existing test frameworks.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+public @interface Description {
+
+ /**
+ * Test Item description as a simple String.
+ *
+ * @return new description for a Test Item
+ */
+ String value();
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/DisplayName.java b/src/main/java/com/epam/reportportal/annotations/DisplayName.java
new file mode 100644
index 00000000..633a4e17
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/DisplayName.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * If put on a method or constructor, or class, overrides corresponding Test Item name on ReportPortal.
+ * This annotation should be handled in priority to other mechanisms of existing test frameworks.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+public @interface DisplayName {
+
+ /**
+ * Test Item name as a simple String.
+ *
+ * @return new name for a Test Item
+ */
+ String value();
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/ExternalIssue.java b/src/main/java/com/epam/reportportal/annotations/ExternalIssue.java
new file mode 100644
index 00000000..3310b3ca
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/ExternalIssue.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Link current Issue with an Issue posted in External Bug Tracking System. This annotation designed to use within {@link Issue} annotation
+ * only and does not allow to add it to any other target.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({})
+public @interface ExternalIssue {
+ /**
+ * External System Issue ID
+ *
+ * @return Issue ID
+ */
+ String value();
+
+ /**
+ * Optional, use custom Bug Tracking System URL instead of one which is set in `reportportal.properties` file.
+ *
+ * @return Bug Tracking System URL
+ */
+ String btsUrl() default "";
+
+ /**
+ * Optional, use custom Bug Tracking System Project name instead of one which is set in `reportportal.properties` file.
+ *
+ * @return Bug Tracking System Project name
+ */
+ String btsProject() default "";
+
+ /**
+ * Optional, use custom Bug Tracking System Issue URL pattern instead of one which is set in `reportportal.properties` file. Use
+ * {issue_id}
mark to put it into the result URL.
+ *
+ * @return Bug Tracking System Issue URL pattern
+ */
+ String urlPattern() default "";
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/Issue.java b/src/main/java/com/epam/reportportal/annotations/Issue.java
new file mode 100644
index 00000000..d59b0fa5
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/Issue.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.*;
+
+/**
+ * This annotation supposed to automatically link failed test items a specific Issue on ReportPortal.
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+@Repeatable(Issues.class)
+public @interface Issue {
+ /**
+ * Type (Locator), Short Name (Abbreviation) or Long Name (Defect name) (specified by priority) of an Issue on ReportPortal for
+ * the current project. If there is no such issue found in Project Setting the value will be used "as is" and sent as
+ * Issue Type (Locator).
+ *
+ * @return Type (Locator), Short Name (Abbreviation) or Long Name (Defect name) of an Issue
+ */
+ String value();
+
+ /**
+ * Arbitrary text describing the issue.
+ *
+ * @return issue description
+ */
+ String comment() default "";
+
+ /**
+ * Links to External System where this issue is located.
+ *
+ * @return External Issue describing object
+ */
+ ExternalIssue[] external() default {};
+
+ /**
+ * For Parameterized and Dynamic tests select certain test for Issue applying using filters by certain criteria. Each additional filter
+ * applies to the set of tests using logical "AND".
+ *
+ * @return filter list
+ */
+ TestFilter[] filter() default {};
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/Issues.java b/src/main/java/com/epam/reportportal/annotations/Issues.java
new file mode 100644
index 00000000..2086db4e
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/Issues.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.*;
+
+/**
+ * Gathering annotation for {@link Issue}
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface Issues {
+ Issue[] value();
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/ParameterKey.java b/src/main/java/com/epam/reportportal/annotations/ParameterKey.java
index 1c401989..856daafa 100644
--- a/src/main/java/com/epam/reportportal/annotations/ParameterKey.java
+++ b/src/main/java/com/epam/reportportal/annotations/ParameterKey.java
@@ -21,23 +21,16 @@
import java.lang.annotation.Target;
/**
- * Used in parametrized tests. ReportPortal waiting test parameters
- * in key - value style. Using the annotation for method parameter
+ * Used in parametrized tests. ReportPortal waiting test parameters in key - value style. Using the annotation for method parameter
* the specific key can be provided.
- *
- * @author Pavel Bortnik
- * @since ReportPortal Api v3.1.0
*/
-
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.PARAMETER })
public @interface ParameterKey {
-
/**
* Returns parameter key value
*
* @return key value
*/
String value() default "";
-
}
diff --git a/src/main/java/com/epam/reportportal/annotations/TemplateConfig.java b/src/main/java/com/epam/reportportal/annotations/TemplateConfig.java
index 45f096f2..dcaf1855 100644
--- a/src/main/java/com/epam/reportportal/annotations/TemplateConfig.java
+++ b/src/main/java/com/epam/reportportal/annotations/TemplateConfig.java
@@ -26,7 +26,7 @@
* Template configuration. Required for customizing representation of the parsed collections and arrays.
* {@link TemplateConfig#methodNameTemplate()} required to set the current method name template to be included in the result value to
* prevent situations when the method argument has the same name as a default {@link TemplateConfiguration#METHOD_NAME_TEMPLATE}
- *
+ *
* {@link TemplateConfig#selfNameTemplate()} required to set the current object name template to be included in the result value to
* prevent situations when the method argument has the same name as a default {@link TemplateConfiguration#SELF_NAME_TEMPLATE}
*/
diff --git a/src/main/java/com/epam/reportportal/annotations/TestFilter.java b/src/main/java/com/epam/reportportal/annotations/TestFilter.java
new file mode 100644
index 00000000..9ab33ed8
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/TestFilter.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Link current Issue with a specific Parameterized or Dynamic test by applying filters.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({})
+public @interface TestFilter {
+
+ /**
+ * Specify Test Name filters to select certain test for {@link Issue} applying, suitable for dynamic tests.
+ *
+ * @return Test Name filters
+ */
+ TestNameFilter[] name() default {};
+
+ /**
+ * Specify Test Parameter filters to select certain test for {@link Issue} applying, suitable for parameterized tests.
+ *
+ * @return Test Name filters
+ */
+ TestParamFilter[] param() default {};
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/TestNameFilter.java b/src/main/java/com/epam/reportportal/annotations/TestNameFilter.java
new file mode 100644
index 00000000..379d056f
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/TestNameFilter.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+/**
+ * Filter Test Set by Test Name.
+ */
+public @interface TestNameFilter {
+ /**
+ * Select a test which name starts with specified String.
+ *
+ * @return required prefix
+ */
+ String startsWith() default "";
+
+ /**
+ * Select a test which name ends with specified String.
+ *
+ * @return required postfix
+ */
+ String endsWith() default "";
+
+ /**
+ * Select a test which name should contain specified String.
+ *
+ * @return required contents
+ */
+ String contains() default "";
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/TestParamFilter.java b/src/main/java/com/epam/reportportal/annotations/TestParamFilter.java
new file mode 100644
index 00000000..977c4051
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/TestParamFilter.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+/**
+ * Filter Test Set by Parameter.
+ */
+public @interface TestParamFilter {
+ /**
+ * Parameter index to which this filter should be applied. If it's not specified then the filter try to match every parameter.
+ *
+ * @return parameter index
+ */
+ int paramIndex() default -1;
+
+ /**
+ * Select a test parameter which name starts with specified String. Designed to use with {@link ParameterKey} annotation, since there is
+ * no parameter names in Java runtime.
+ *
+ * @return required prefix
+ */
+ String nameStartsWith() default "";
+
+ /**
+ * Select a test parameter which name ends with specified String. Designed to use with {@link ParameterKey} annotation, since there is
+ * no parameter names in Java runtime.
+ *
+ * @return required prefix
+ */
+ String nameEndsWith() default "";
+
+ /**
+ * Select a test parameter which name should contain specified String. Designed to use with {@link ParameterKey} annotation, since there
+ * is no parameter names in Java runtime.
+ *
+ * @return required prefix
+ */
+ String nameContains() default "";
+
+ /**
+ * Select a test parameter which value starts with specified String. Non-string parameter values convert with {@link Object#toString()},
+ * method.
+ *
+ * @return required prefix
+ */
+ String valueStartsWith() default "";
+
+ /**
+ * Select a test parameter which value ends with specified String. Non-string parameter values convert with {@link Object#toString()},
+ * method.
+ *
+ * @return required prefix
+ */
+ String valueEndsWith() default "";
+
+ /**
+ * Select a test parameter which value should contain specified String. Non-string parameter values convert with
+ * {@link Object#toString()}, method.
+ *
+ * @return required prefix
+ */
+ String valueContains() default "";
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/TmsLink.java b/src/main/java/com/epam/reportportal/annotations/TmsLink.java
new file mode 100644
index 00000000..f94d25b6
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/TmsLink.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.*;
+
+/**
+ * Add a link to a Test Case located in external Test Management System.
+ * This annotation appends a hypertext link to a Test Case into the Test Item description.
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+@Repeatable(TmsLinks.class)
+public @interface TmsLink {
+
+ /**
+ * TMS ticket ID.
+ *
+ * @return ID as string
+ */
+ String value();
+
+ /**
+ * Link text pattern, accepts 'tms_id' parameter.
+ *
+ * @return formatted link text
+ */
+ String linkTextPattern() default "TMS #{tms_id}";
+
+ /**
+ * Link URL pattern, accepts 'tms_id' parameter.
+ *
+ * @return link to a TMS ticket
+ */
+ String urlPattern() default "";
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/TmsLinks.java b/src/main/java/com/epam/reportportal/annotations/TmsLinks.java
new file mode 100644
index 00000000..f762f96a
--- /dev/null
+++ b/src/main/java/com/epam/reportportal/annotations/TmsLinks.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2024 EPAM Systems
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.epam.reportportal.annotations;
+
+import java.lang.annotation.*;
+
+/**
+ * Gathering annotation for {@link TmsLink}
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+public @interface TmsLinks {
+ TmsLink[] value();
+}
diff --git a/src/main/java/com/epam/reportportal/annotations/attribute/Attributes.java b/src/main/java/com/epam/reportportal/annotations/attribute/Attributes.java
index 80fe6ae5..5e509e38 100644
--- a/src/main/java/com/epam/reportportal/annotations/attribute/Attributes.java
+++ b/src/main/java/com/epam/reportportal/annotations/attribute/Attributes.java
@@ -28,7 +28,7 @@
* @see MultiValueAttribute
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD, ElementType.TYPE})
+@Target({ ElementType.METHOD, ElementType.TYPE })
@Inherited
public @interface Attributes {
diff --git a/src/main/java/com/epam/reportportal/service/ReportPortalClient.java b/src/main/java/com/epam/reportportal/service/ReportPortalClient.java
index 90d8aa91..69c8d3bf 100644
--- a/src/main/java/com/epam/reportportal/service/ReportPortalClient.java
+++ b/src/main/java/com/epam/reportportal/service/ReportPortalClient.java
@@ -19,6 +19,7 @@
import com.epam.ta.reportportal.ws.model.item.ItemCreatedRS;
import com.epam.ta.reportportal.ws.model.launch.*;
import com.epam.ta.reportportal.ws.model.log.SaveLogRQ;
+import com.epam.ta.reportportal.ws.model.project.config.ProjectSettingsResource;
import io.reactivex.Maybe;
import okhttp3.MultipartBody;
import retrofit2.http.*;
@@ -60,4 +61,7 @@ public interface ReportPortalClient {
@GET("v1/{projectName}/item/uuid/{itemUuid}")
Maybe{issue_id}
and
+ * {bts_project}
placeholders to mark a place where to put Issue ID and Bug Tracking System Project name. The result URL
+ * should point on the Issue.
+ */
+ BTS_ISSUE_URL("rp.bts.issue.url", false),
+ /**
+ * Fail tests marked with {@link Issue} annotation if they passed. Default value: true
. Designed to not miss the moment
+ * when the issue got fixed but test is still marked by annotation.
+ */
+ BTS_ISSUE_FAIL("rp.bts.issue.fail", false);
//formatter:on
private final String propertyName;
diff --git a/src/main/resources/META-INF/aop-ajc.xml b/src/main/resources/META-INF/aop-ajc.xml
index 4f45411f..9bfa23eb 100644
--- a/src/main/resources/META-INF/aop-ajc.xml
+++ b/src/main/resources/META-INF/aop-ajc.xml
@@ -1,4 +1,21 @@
+
+