- Jackson version updated to
2.21.1to address vulnerability, by @HardNorth
- Issue #319: RP client threw exception on Launch finish if the Launch wasn't started, by @HardNorth
- Attribute number truncation, by @HardNorth
- Binary character replacement in basic text fields, by @HardNorth
- Jackson version updated to
2.18.6to address vulnerability, by @HardNorth
aspectjrtdependency, by @HardNorth
- Item name formatting according to passed parameters, by @HardNorth
AttributeParser.retrieveAttributes(Executable)method, by @HardNorth
- Attribute annotations and their extraction improved, by @HardNorth
- HTTP logging support for OAuth 2.0 Password Grant authentication, by @HardNorth
- Explicitly disable proxy for OAuth authentication when
rp.oauth.use.proxy=falseto avoid issues when proxy is set through system properties, by @HardNorth
rp.oauth.use.proxyparameter to control if OAuth HTTP client Inherits proxy settings from general client, by @HardNorth
LockCloseableclass as a separate entity, by @HardNorth
- OAuth 2.0 Password Grant authentication, by @HardNorth
- Losing of file content type and name on log message cloning, by @HardNorth
- Return back logging endpoints with
Dateclass for backward compatibility, by @HardNorth
- Log time parameter type changed to Comparable in multiple methods, in
ReportPortalandItemTreeReporterclasses, by @HardNorth - Support of Date type in SaveLogRQ for legacy loggers, by @HardNorth
- Microseconds precision for timestamps, by @HardNorth
- Replace "jsr305" with "jakarta.annotation-api", by @HardNorth
- Java 8-10 support, by @HardNorth
- Item upload in certain rare cases, by @HardNorth
- Ensure all logs are sent before JVM exit for secondary Launches, by @HardNorth
- Ensure all logs are sent before JVM exit, by @HardNorth
- Issue #293: Minimum IO pool size, by @HardNorth
- Issue #292: Truncate too long string fields, by @HardNorth
- More evaluation cases in
StatusEvaluation.evaluateStatusutility method, by @HardNorth
- Shutdown hook for Launch executor, since it makes issues with shutdown hooks in Agents, by @HardNorth
- Add Launch.log(Maybe<java.lang.String>, jFunction<String, SaveLogRQ>) method, by @HardNorth
- Simplified
LoggingContextclass, by @HardNorth
- Log items wait mechanism, by @HardNorth
- Possible log duplication, by @HardNorth
- Cleanup of Completables, by @HardNorth
Utils.getFile(java.net.URI)method, by @HardNorth
LaunchImpl.launchis now private, by @HardNorth
- Possible multiple start launches, by @HardNorth
- Possible log duplication, by @HardNorth
- Launch items wait mechanism, by @HardNorth
- Refactor
FlowableandMaybefutures inLaunchImplto ensure in their completion, by @HardNorth
- Limit the number of client threads, by @HardNorth
- Move Launch executor shutdown to a shutdown hook, by @HardNorth
- Sporadically missed logs on Launch finish, by @HardNorth
- Weird JDK 8 issue with
java.nio.ByteBufferclass, by @HardNorth
- Sporadically missed item finish, by @HardNorth
- Sporadically missed logs, by @HardNorth
- Virtual item has not been populated with actual ID in some cases, by @HardNorth
LaunchImpl.finishmethod item waits order was tuned to complete items only after virtual items and all logs, by @HardNorth- Some refactoring in
LaunchImplclass, by @HardNorth
LaunchImpl.finishmethod now waits virtual items fulfillment, by @HardNorthLaunchImpl.finishmethod now waits for all items completion simultaneously, by @HardNorth
LaunchImpl.completeLogEmitter()method, by @HardNorthLaunch.log(SaveLogRQ rq)method, by @HardNorthLaunch.log(Function<String, SaveLogRQ> logSupplier)method, by @HardNorthLaunch.createVirtualItem()method, which ability to get Item ID promise without actually starting an Item, by @HardNorthLaunch.startVirtualTestItem(Maybe<String>, StartTestItemRQ)method, which populates virtual Item ID promise with actual Item ID, by @HardNorthLaunch.startVirtualTestItem(Maybe<String>, Maybe<String>, StartTestItemRQ)method, which populates child virtual Item ID promise with actual Item ID, by @HardNorth
LoggingContextclass is not responsible for log emitting anymore, just holds Item ID context, all logs are emitted byLaunchImplclass, by @HardNorth
LaunchLoggingContextclass, by @HardNorth- Deprecated code, by @HardNorth
rp.keystore.typeandrp.truststore.typeconfiguration parameters, by @HardNorth
rp.truststore.resourceandrp.truststore.passwordconfiguration parameters, by @HardNorth
- Manual SSL configuration for
OkHttpClient, by @HardNorth
LaunchLoggingContext.completedis now public, by @HardNorth
NullPointerExceptionin case of no binary data inReportPortal.toSaveLogRQmethod, by @HardNorth
ReportPortal.toSaveLogRQpublic method, by @HardNorth
rp.truncation.exceptionconfiguration property to control exception logging, by @HardNorth
StepReporter.sendStepmethods now returnsMaybe<String>with Step ID, by @HardNorthStepReporter.finishNestedStepmethods now returnsMaybe<OperationCompletionRS>, by @HardNorthrxjavaversion updated on 2.2.21, by @HardNorth
StepReporter.step(java.lang.String)method now returnsMaybe<String>with Step ID, by @HardNorthjackson-databindversion updated on 2.15.4, by @HardNorth
MarkdownUtils.asTwoPartsnow correctly joins two document parts with separation line, by @HardNorth
- Some new types to
ContentTypeclass, by @HardNorth
Retrofitversion updated on version 2.11.0, by @HardNorth
rp.launch.uuid.creation.skipconfiguration properties to control Launch start on provided UUID, by @HardNorth
@Issueand@Issuesannotations handling in certain cases, by @HardNorth
- Issue Locator lookup by value in
@Issueannotation, by @HardNorth
IssueUtilsclass, common code to process@Issueand@Issuesannotations, by @HardNorth
- Issue #210 Ability to call methods without parameters in templates, by @HardNorth
ExceptionUtilsclass to unify exceptions format, by @HardNorth
MarkdownUtils,TemplateConfigurationandTemplateProcessingwas moved toutils.formattingpackage, by @HardNorth
rp.client.join.launch.timeout.valueandrp.client.join.launch.timeout.unitconfiguration properties to control SecondaryLaunch start timeout on client join, by @HardNorthrp.bts.project,rp.bts.url,rp.bts.issue.url,rp.bts.issue.failconfiguration properties to control manual issue set by Agents, by @HardNorth
- Disable Launch start wait for Secondary Launches if async reporting is enabled, by @HardNorth
- Disable Statistics for Secondary Launches, by @HardNorth
commons-modeldependency version updated to5.3.3, by @HardNorth
MarkdownUtils.asTwoParts(String, String)method, by @HardNorth
- Return back
ContentType#parsemethod for backward compatibility, by @HardNorth
- Extend
ContentTypeclass functionality, by @HardNorth
- Cookies duplication on requests, by @HardNorth
- Cookies logging on requests, by @HardNorth
- Mark
aspectjrtdependency asimplementation, by @HardNorth - Move
CookieJarobject to static final field in ReportPortal class to use one instance for all HTTP clients, by @HardNorth
- Some more binary file types detection, by @HardNorth
jackson-databinddependency reverted toapitype, by @HardNorth
- Mark
jackson-databinddependency asimplementation, by @HardNorth
aop-ajc.xmlfile, since not all agents have ability to use AspectJ, by @HardNorth
Descriptionannotation, by @HardNorthDisplayNameannotation, by @HardNorthTmsLinkandTmsLinksannotations, by @HardNorthIssueandExternalIssueannotations, by @HardNorthrp.bts.project,rp.bts.url,rp.bts.issue.url,rp.bts.issue.failproperties, which controls these annotations, by @HardNorthTestFilter,TestNameFilter,TestParamFilterannotations to control Issue apply on Parameterized and Dynamic Tests, by @HardNorth
ReportPortalClient.getProjectSettingsmethod, by @HardNorth
Utils.copyFilesstatic method to use in examples, by @HardNorth
- Improve MIME type detection in
MimeTypeDetector.detect, methods, by @HardNorth
- Improve MIME type detection in
MimeTypeDetector.detect(java.io.File),ReportPortal.emitLogandReportPortal.emitLaunchLogmethods, by @HardNorth
- Table size limit in
MarkdownUtils.formatDataTable(List, int)method, by @HardNorth - Transpose table logic if column number is bigger than row number in
MarkdownUtils.formatDataTable(List, int)method, by @HardNorth MarkdownUtils.formatDataTable(Map<String, String>)method, by @HardNorth
Accessible.method(java.lang.String, java.lang.Class<?>...)method, by @HardNorth
- Guava library dependency was removed, by @HardNorth
- Deprecated code, by @HardNorth
- Guava version update to address a vulnerability on
33.0.0-android, by @HardNorth - Okhttp version update to address a vulnerability on
4.12.0, by @HardNorth - Logback version update to address a vulnerability on
1.3.12, by @HardNorth
MarkdownUtils.formatDataTableandParameterUtils.formatParametersAsTablemethods to support parameter reporting for BDD frameworks, by @HardNorth
- Static methods of
AttributeParserare now public, Javadoc and JSR annotations added, by @HardNorth
ReportPortalClient.updateLaunchmethod, by @matt-richardson
SecondaryLaunchFinishConditionclass was separated to resolve fat jar issues, by @HardNorthrxjavawas forcibly excluded fromretrofit2:adapter-rxjava2transitive dependencies to resolve fat jar issues, by @HardNorth
- Unified ReportPortal product naming, by @HardNorth
- Async reporting is now used by default, by @HardNorth
rp.launch.uuid.printandrp.launch.uuid.print.outputconfiguration parameters, by @HardNorth
- Slf4j version updated on version 2.0.4 to support newer versions of Logback with security fixes, by @HardNorth
- AspectJ version updated on 1.9.19 to support newer versions of Java and bug fixes, by @HardNorth
- Some classes were refactored to less use Guava library and more core Java, by @HardNorth
ClientIdProviderclass to store and read a client's unique ID, by @HardNorthStepReporter.setStepStatusmethod to change nested step status in runtime, by @HardNorth
rp.http.proxy.usernameandrp.http.proxy.passwordparameters, by @HardNorth
NullPointerExceptioninTestCaseIdUtilsclass for case with null-value parameters, by @HardNorth
classandclassRefkeywords for@TestCaseIdtemplating, by @HardNorth
PropertiesLoader.overrideWith(java.util.Properties)method, by @HardNorth
MemoizingSupplierclass was refactored to get rid ofsynchronizedkeyword, by @HardNorthLogBatchingFlowableclass was refactored to get rid ofsynchronizedkeyword, by @HardNorthLaunchIdLockSocketclass was refactored to get rid ofsynchronizedkeyword, by @HardNorthStatisticsServicewas rewritten on new protocol version, by @HardNorth
classandclassRefkeywords for@Steptemplating, by @HardNorthPropertiesLoader.getPropertyFilePathmethod, by @HardNorth
- Issue #198 Property file customization with
rp.properties.pathproperty, by @HardNorth
jackson-databinddependency was forcibly updated to address vulnerabilities, by @HardNorth
- Launch finish time in case of fork-join launch, by @PavelSakharchuk
rp.launch.uuidproperty, to append to and existing launch without start/finish launch calls, by @HardNorth- Attribute values truncation and its properties, by @HardNorth
- Some javadocs, by @HardNorth
Launchobjects do not modify request objects which were passed to them now, cloning them instead, by @HardNorth- Some refactoring, by @HardNorth
StepReporter#step(ItemStatus, String, Supplier<T>)method, by @HardNorth- Log batching payload size tracking, by @HardNorth
rp.batch.payload.limitconfiguration parameter, by @HardNorth
finallykeyword, see JEP 421, by @HardNorth
- Logging RxJava flow refactoring, by @HardNorth
- public
StepNameUtils.getStepNamemethods to ease template processing customizations, by @HardNorth
jackson-databinddependency was forcibly updated to address vulnerabilities, by @HardNorth
- Issue #70
@Steptemplating now supportsthisobject reference - Issue #130
@TestCaseIdnow supports templating
@Attributesannotation inheritanceLaunch.getLaunchmethod, which returns current Launch UUID or emptyMaybeLoggingContext.context()public static method which allows get current logging context
- Issue #182: Duplicate key error
- Issue #147: Logging context loose in child thread
- Null-pointer cases in LoggingContext class
- Slf4j version updated on 1.7.32 to support newer versions of Logback with security fixes
- JVM arg parameters have more priority than Environment variables now.
- Property loader doesn't throw any errors now, just logs warnings.
- HTTP timeout parameters
- TestNG NestedStep mixing issue
- Method
StepReporter.finishNestedStep(ItemStatus)
- Exception logging on lambda-style nested step was removed to avoid double-logging, since it should be logged on test level.
- Nested Step finish refactoring
- More JSR-305 annotations
- StepRequestUtils refactoring
StepReporter#finishPreviousStep(@Nullable ItemStatus status);method
StepReporter#stepmethods, issue #127
- Refactoring of StepAspect class
- StepRequestUtils class now public
- Error message on incompatible OkHttp dependency version
- It's now possible to obtain ReportPortal client by
Launch.currentLaunch().getClient()
- Lock wait timeout property initialization
- Incorrect MIME type attachment upload
- New distributed Launch join mechanism: sockets
- New properties:
rp.client.join.mode,rp.client.join.file.lock.name,rp.client.join.file.sync.name,rp.client.join.timeout.value,rp.client.join.timeout.unit,rp.client.join.lock.timeout.value,rp.client.join.lock.timeout.unit,rp.client.join.port
- UniqueID annotation deprecated
- It's now possible to assign Attributes annotation on classes
- Property deprecation:
rp.client.join.lock.file.name,rp.client.join.sync.file.name,rp.client.join.file.wait.timeout.ms
- Apache Tika dependency
- Tags annotation since it looks like it is not in use anywhere
- Apache Tika version degraded on 1.19 for Android compatibility
- Common Jackson ObjectMapper moved to HttpRequestUtils class
- try-catch refactoring in
ReportPortal.Builderclass to get better stack traces - Introducing "Retrofit 2" as RP client
- Item names truncation, issue #154
- try-catch refactoring in
ReportPortal.Builderclass to get better stack traces
rp.rx.buffer.sizeproperty handling
- A static Issue Launch.NOT_ISSUE to use in agents and avoid issue creation duplication
- StatusEvaluation class with an
evaluateStatusmethod
- All client threads now marked as daemon to not prevent JVM shutting down
- 'AGENT_NO_ANALYTICS' environment variable
- MemoizingSupplier class for agents lazy init
- A method to emit a log entry for a certain item: com.epam.reportportal.service.ReportPortal.emitLog(io.reactivex.Maybe<java.lang.String>, java.util.function.Function<java.lang.String,com.epam.ta.reportportal.ws.model.log.SaveLogRQ>)
- Apache Tika was updated on version 1.20
- Test Case ID generation methods now accepts
Executableas a parameter instead ofMethod
- A lot of code style warnings (e.g. legacy java 6 code updated, etc)
- TestItemTree.TestItemLeaf now supports attribute storing
- Properties loader now ignores property case
- Null-value handling for inner fields for step templates of annotation-based nested steps
- It's now possible to bypass a null-value client to ReportPortal class constructor, as a result user will get a NOOP launch
- ReportPortal does not throw any exceptions if 'reportportal.properties' not found
- Additional ParameterUtils methods to use inside Cucumber agents
- Manual Nested Step failure now also fails all the ancestors, not only the nearest one
- StepAspect.setParentId and StepAspect.removeParentId now handled inside LaunchImpl class
- Utilities
- More Test Case ID methods
- CodeRef generation method
- A proxy parameter handling:
rp.http.proxy=http://localhost:8981
- Issue #117 multithreaded reporting of nested steps
- AnalyticsService class to publish Google Analytics events
- LaunchImpl now publish Analytics Events
- ParameterUtils class which will be responsible for ParameterResource lists generation based on methods/constructors
- @NotNull annotations replaced with @Nonnull as the latter is shorter and comes with Java SE
- reportportal/reportportal#293 - Re-licence client side
- Get rid of HTTP Apache Async Client in favor of synchronous version
- Better extensibility
- reportportal/reportportal#142 - Java client parameters are not UTF-8 encoded