From 2842132836733062fe4bf69d567e9172bf9fe3ea Mon Sep 17 00:00:00 2001
From: Pavel Ratushny <161594096+pratushnyi@users.noreply.github.com>
Date: Thu, 25 Jun 2026 12:00:19 +0400
Subject: [PATCH 1/7] chore: bump jackson to 2.22.0 (via #1300)
---
.idea/vcs.xml | 3 +++
build.gradle.kts | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 95443a122..d154cb226 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -10,4 +10,7 @@
+
+
+
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 89433e24a..de3397b30 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -147,7 +147,7 @@ configure(libs) {
dependencyManagement {
imports {
- mavenBom("com.fasterxml.jackson:jackson-bom:2.21.1")
+ mavenBom("com.fasterxml.jackson:jackson-bom:2.22.0")
mavenBom("org.junit:junit-bom:5.10.3")
}
dependencies {
From 983747ee5f97ce620bcc3f62696e28b63912f6df Mon Sep 17 00:00:00 2001
From: qameta-ci
Date: Thu, 25 Jun 2026 08:08:55 +0000
Subject: [PATCH 2/7] release 2.35.3
---
gradle.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gradle.properties b/gradle.properties
index 5c3b09087..b0819da9e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-version=2.35.2
+version=2.35.3
org.gradle.daemon=true
org.gradle.parallel=true
From c38740371039c17699832fd081cb0a668a576024 Mon Sep 17 00:00:00 2001
From: Pavel Ratushny <161594096+pratushnyi@users.noreply.github.com>
Date: Thu, 23 Jul 2026 14:35:18 +0400
Subject: [PATCH 3/7] chore: bump jackson to 2.22.1 (via #1343)
---
allure-grpc/build.gradle.kts | 2 +-
build.gradle.kts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/allure-grpc/build.gradle.kts b/allure-grpc/build.gradle.kts
index 104a8e43f..bee1b6518 100644
--- a/allure-grpc/build.gradle.kts
+++ b/allure-grpc/build.gradle.kts
@@ -10,7 +10,7 @@ val agent: Configuration by configurations.creating
val grpcVersion = "1.79.0"
val protobufVersion = "4.33.5"
-val jacksonVersion = "2.17.2"
+val jacksonVersion = "2.22"
dependencies {
agent("org.aspectj:aspectjweaver")
diff --git a/build.gradle.kts b/build.gradle.kts
index de3397b30..16676cfdc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -147,7 +147,7 @@ configure(libs) {
dependencyManagement {
imports {
- mavenBom("com.fasterxml.jackson:jackson-bom:2.22.0")
+ mavenBom("com.fasterxml.jackson:jackson-bom:2.22.1")
mavenBom("org.junit:junit-bom:5.10.3")
}
dependencies {
From 5324352a330725a78a551d7094dc9d1c0fc70907 Mon Sep 17 00:00:00 2001
From: qameta-ci
Date: Thu, 23 Jul 2026 10:37:38 +0000
Subject: [PATCH 4/7] release 2.35.4
---
gradle.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gradle.properties b/gradle.properties
index b0819da9e..5cb84fd2d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-version=2.35.3
+version=2.35.4
org.gradle.daemon=true
org.gradle.parallel=true
From e3bbe8b5a798f43017f24685cd85187b93c20450 Mon Sep 17 00:00:00 2001
From: Dmitry Baev
Date: Thu, 3 Sep 2026 13:15:07 +0100
Subject: [PATCH 5/7] prevent assertion aspects from crashing on missing
optional types (via #1415)
---
.gitignore | 3 +
allure-assertj/build.gradle.kts | 5 ++
.../qameta/allure/assertj/AllureAspectJ.java | 27 +++----
.../assertj/fixture/MissingOptionalType.java | 22 ++++++
.../allure/assertj/AllureAspectJTest.java | 28 +++++++
.../fixture/MissingOptionalTypeFixture.java | 73 +++++++++++++++++++
allure-jupiter-assert/build.gradle.kts | 5 ++
.../jupiterassert/AllureJupiterAssert.java | 4 +-
.../fixture/MissingOptionalType.java | 22 ++++++
.../AllureJupiterAssertTest.java | 50 +++++++++++++
.../fixture/MissingOptionalTypeFixture.java | 73 +++++++++++++++++++
gradle.properties | 2 +-
12 files changed, 294 insertions(+), 20 deletions(-)
create mode 100644 allure-assertj/src/missingDependency/java/io/qameta/allure/assertj/fixture/MissingOptionalType.java
create mode 100644 allure-assertj/src/test/java/io/qameta/allure/assertj/fixture/MissingOptionalTypeFixture.java
create mode 100644 allure-jupiter-assert/src/missingDependency/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalType.java
create mode 100644 allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalTypeFixture.java
diff --git a/.gitignore b/.gitignore
index b85107a90..fc9f1bb0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,9 @@ build
out
.gradletasknamecache
+#AspectJ crash dumps
+ajcore.*.txt
+
#IDEA Files
.idea/*
!.idea/vcs.xml
diff --git a/allure-assertj/build.gradle.kts b/allure-assertj/build.gradle.kts
index e38cca0ea..7ee4768c7 100644
--- a/allure-assertj/build.gradle.kts
+++ b/allure-assertj/build.gradle.kts
@@ -1,12 +1,17 @@
description = "Allure AssertJ Integration"
+// Compile the optional type used by the regression fixture without adding it to the test runtime.
+val missingDependency by sourceSets.creating
+
dependencies {
api(project(":allure-java-commons"))
compileOnly("org.aspectj:aspectjrt")
compileOnly("org.assertj:assertj-core")
+ testImplementation("org.aspectj:aspectjweaver")
testImplementation("org.assertj:assertj-core")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.slf4j:slf4j-simple")
+ testCompileOnly(missingDependency.output)
testImplementation(project(":allure-java-commons-test"))
testImplementation(project(":allure-junit-platform"))
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
diff --git a/allure-assertj/src/main/java/io/qameta/allure/assertj/AllureAspectJ.java b/allure-assertj/src/main/java/io/qameta/allure/assertj/AllureAspectJ.java
index 33e2a3de6..5e080ce3d 100644
--- a/allure-assertj/src/main/java/io/qameta/allure/assertj/AllureAspectJ.java
+++ b/allure-assertj/src/main/java/io/qameta/allure/assertj/AllureAspectJ.java
@@ -51,10 +51,10 @@ protected AllureLifecycle initialValue() {
@Pointcut(
"("
- + "call(public static * org.assertj.core.api.Assertions*.assertThat*(..))"
- + " || call(public static * org.assertj.core.api.BDDAssertions*.then*(..))"
- + " || call(public * org.assertj.core.api.*SoftAssertionsProvider+.assertThat*(..))"
- + " || call(public * org.assertj.core.api.*SoftAssertionsProvider+.then*(..))"
+ + "execution(public static * org.assertj.core.api.Assertions*.assertThat*(..))"
+ + " || execution(public static * org.assertj.core.api.BDDAssertions*.then*(..))"
+ + " || execution(public * org.assertj.core.api.*SoftAssertionsProvider+.assertThat*(..))"
+ + " || execution(public * org.assertj.core.api.*SoftAssertionsProvider+.then*(..))"
+ ")"
)
@@ -67,11 +67,12 @@ public void assertFactoryCall() {
@Pointcut(
"("
- + "call(public * org.assertj.core.api.AbstractAssert+.*(..))"
- + " || call(public * org.assertj.core.api.Assert+.*(..))"
- + " || call(public * org.assertj.core.api.Descriptable+.*(..))"
+ + "execution(public * org.assertj.core.api.AbstractAssert+.*(..))"
+ + " || execution(public * org.assertj.core.api.Assert+.*(..))"
+ + " || execution(public * org.assertj.core.api.Descriptable+.*(..))"
+ ")"
+ " && target(assertion)"
+ + " && !execution(* org.assertj.core.api.AssertJProxySetup.*(..))"
)
/**
@@ -83,16 +84,8 @@ public void assertOperationCall(final AbstractAssert, ?> assertion) {
//pointcut body, should be empty
}
- /**
- * Handles the user code call callback.
- */
- @Pointcut("!within(org.assertj..*) && !within(io.qameta.allure.assertj.AllureAspectJ)")
- public void userCodeCall() {
- //pointcut body, should be empty
- }
-
@AfterReturning(
- pointcut = "assertFactoryCall() && userCodeCall()",
+ pointcut = "assertFactoryCall()",
returning = "result"
)
@@ -119,7 +112,7 @@ public void logAssertCreation(final JoinPoint joinPoint, final Object result) {
* @return the log assert operation
* @throws Throwable if the underlying framework operation fails
*/
- @Around("assertOperationCall(assertion) && userCodeCall()")
+ @Around("assertOperationCall(assertion)")
public Object logAssertOperation(final ProceedingJoinPoint joinPoint,
final AbstractAssert, ?> assertion)
throws Throwable {
diff --git a/allure-assertj/src/missingDependency/java/io/qameta/allure/assertj/fixture/MissingOptionalType.java b/allure-assertj/src/missingDependency/java/io/qameta/allure/assertj/fixture/MissingOptionalType.java
new file mode 100644
index 000000000..ddd4209c5
--- /dev/null
+++ b/allure-assertj/src/missingDependency/java/io/qameta/allure/assertj/fixture/MissingOptionalType.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016-2026 Qameta Software Inc
+ *
+ * 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
+ *
+ * http://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 io.qameta.allure.assertj.fixture;
+
+public interface MissingOptionalType extends Runnable {
+
+ String getValue();
+
+}
diff --git a/allure-assertj/src/test/java/io/qameta/allure/assertj/AllureAspectJTest.java b/allure-assertj/src/test/java/io/qameta/allure/assertj/AllureAspectJTest.java
index 377e7a6b1..2c2d70ac8 100644
--- a/allure-assertj/src/test/java/io/qameta/allure/assertj/AllureAspectJTest.java
+++ b/allure-assertj/src/test/java/io/qameta/allure/assertj/AllureAspectJTest.java
@@ -15,6 +15,7 @@
*/
package io.qameta.allure.assertj;
+import io.qameta.allure.assertj.fixture.MissingOptionalTypeFixture;
import io.qameta.allure.model.Parameter;
import io.qameta.allure.model.Status;
import io.qameta.allure.model.StatusDetails;
@@ -22,6 +23,7 @@
import io.qameta.allure.model.TestResult;
import io.qameta.allure.test.AllureFeatures;
import io.qameta.allure.test.AllureResults;
+import org.aspectj.weaver.Dump;
import org.assertj.core.api.AbstractStringAssert;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.assertj.core.api.SoftAssertions;
@@ -35,9 +37,35 @@
import static io.qameta.allure.test.RunUtils.runWithinTestContext;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.tuple;
class AllureAspectJTest {
+ @Test
+ void shouldNotInspectClassesWithMissingOptionalTypes() {
+ final ClassLoader classLoader = MissingOptionalTypeFixture.class.getClassLoader();
+ assertThatExceptionOfType(ClassNotFoundException.class)
+ .isThrownBy(
+ () -> Class.forName(
+ MissingOptionalTypeFixture.MISSING_TYPE_NAME,
+ false,
+ classLoader
+ )
+ );
+
+ final String dumpBefore = Dump.getLastDumpFileName();
+
+ final Class> fixtureType = MissingOptionalTypeFixture.loadClassWithMissingTypeSignature();
+ final String dumpAfter = Dump.getLastDumpFileName();
+
+ assertThatExceptionOfType(TypeNotPresentException.class)
+ .isThrownBy(fixtureType::getGenericSuperclass)
+ .withMessageContaining(MissingOptionalTypeFixture.MISSING_TYPE_NAME);
+ assertThat(dumpAfter)
+ .as("last AspectJ dump file")
+ .isEqualTo(dumpBefore);
+ }
+
@AllureFeatures.Steps
@Test
void shouldCreateSemanticChainForScalarAssert() {
diff --git a/allure-assertj/src/test/java/io/qameta/allure/assertj/fixture/MissingOptionalTypeFixture.java b/allure-assertj/src/test/java/io/qameta/allure/assertj/fixture/MissingOptionalTypeFixture.java
new file mode 100644
index 000000000..a39a9c164
--- /dev/null
+++ b/allure-assertj/src/test/java/io/qameta/allure/assertj/fixture/MissingOptionalTypeFixture.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2016-2026 Qameta Software Inc
+ *
+ * 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
+ *
+ * http://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 io.qameta.allure.assertj.fixture;
+
+import java.util.function.Function;
+
+/**
+ * Loads a bounded generic subclass whose type argument is deliberately absent at runtime.
+ */
+public final class MissingOptionalTypeFixture {
+
+ public static final String MISSING_TYPE_NAME = "io.qameta.allure.assertj.fixture.MissingOptionalType";
+
+ private MissingOptionalTypeFixture() {
+ }
+
+ public static Class> loadClassWithMissingTypeSignature() {
+ return MissingTypeProperties.class;
+ }
+
+ private interface TypeProperties {
+
+ Class extends T> getType();
+
+ String get(T instance);
+
+ }
+
+ private static class MappedProperties implements TypeProperties {
+
+ @Override
+ public Class extends T> getType() {
+ return null;
+ }
+
+ protected void add(final Function getter) {
+ //fixture method, should be empty
+ }
+
+ @Override
+ public String get(final T instance) {
+ return null;
+ }
+
+ }
+
+ private static final class MissingTypeProperties extends MappedProperties {
+
+ @Override
+ public Class extends MissingOptionalType> getType() {
+ return null;
+ }
+
+ private MissingTypeProperties() {
+ add(MissingOptionalType::getValue);
+ }
+
+ }
+
+}
diff --git a/allure-jupiter-assert/build.gradle.kts b/allure-jupiter-assert/build.gradle.kts
index b0c9d6dd5..05981bc14 100644
--- a/allure-jupiter-assert/build.gradle.kts
+++ b/allure-jupiter-assert/build.gradle.kts
@@ -1,13 +1,18 @@
description = "Allure Jupiter Assertions Integration"
+// Compile the optional type used by the regression fixture without adding it to the test runtime.
+val missingDependency by sourceSets.creating
+
dependencies {
api(project(":allure-jupiter"))
compileOnly("org.aspectj:aspectjrt")
compileOnly("org.junit.jupiter:junit-jupiter-api")
testAnnotationProcessor(project(":allure-descriptions-javadoc"))
+ testImplementation("org.aspectj:aspectjweaver")
testImplementation("org.assertj:assertj-core")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.slf4j:slf4j-simple")
+ testCompileOnly(missingDependency.output)
testImplementation(project(":allure-java-commons-test"))
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
diff --git a/allure-jupiter-assert/src/main/java/io/qameta/allure/jupiterassert/AllureJupiterAssert.java b/allure-jupiter-assert/src/main/java/io/qameta/allure/jupiterassert/AllureJupiterAssert.java
index fbc0ba95e..afadc78ac 100644
--- a/allure-jupiter-assert/src/main/java/io/qameta/allure/jupiterassert/AllureJupiterAssert.java
+++ b/allure-jupiter-assert/src/main/java/io/qameta/allure/jupiterassert/AllureJupiterAssert.java
@@ -58,7 +58,7 @@ protected AllureLifecycle initialValue() {
/**
* Handles the any assert callback.
*/
- @Pointcut("call(void org.junit.jupiter.api.Assertions.*(..)) || throwable()")
+ @Pointcut("execution(void org.junit.jupiter.api.Assertions.*(..)) || throwable()")
public void anyAssert() {
}
@@ -66,7 +66,7 @@ public void anyAssert() {
/**
* Handles the throwable callback.
*/
- @Pointcut("call(Throwable org.junit.jupiter.api.Assertions.*(..))")
+ @Pointcut("execution(Throwable org.junit.jupiter.api.Assertions.*(..))")
public void throwable() {
}
diff --git a/allure-jupiter-assert/src/missingDependency/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalType.java b/allure-jupiter-assert/src/missingDependency/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalType.java
new file mode 100644
index 000000000..105660f00
--- /dev/null
+++ b/allure-jupiter-assert/src/missingDependency/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalType.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016-2026 Qameta Software Inc
+ *
+ * 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
+ *
+ * http://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 io.qameta.allure.jupiterassert.fixture;
+
+public interface MissingOptionalType extends Runnable {
+
+ String getValue();
+
+}
diff --git a/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/AllureJupiterAssertTest.java b/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/AllureJupiterAssertTest.java
index 1da892a97..01a75219a 100644
--- a/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/AllureJupiterAssertTest.java
+++ b/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/AllureJupiterAssertTest.java
@@ -15,17 +15,47 @@
*/
package io.qameta.allure.jupiterassert;
+import io.qameta.allure.jupiterassert.fixture.MissingOptionalTypeFixture;
+import io.qameta.allure.model.Status;
import io.qameta.allure.model.StepResult;
import io.qameta.allure.model.TestResult;
import io.qameta.allure.test.AllureResults;
+import org.aspectj.weaver.Dump;
import org.junit.jupiter.api.Test;
import static io.qameta.allure.test.RunUtils.runWithinTestContext;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
class AllureJupiterAssertTest {
+ @Test
+ void shouldNotInspectClassesWithMissingOptionalTypes() {
+ final ClassLoader classLoader = MissingOptionalTypeFixture.class.getClassLoader();
+ assertThatExceptionOfType(ClassNotFoundException.class)
+ .isThrownBy(
+ () -> Class.forName(
+ MissingOptionalTypeFixture.MISSING_TYPE_NAME,
+ false,
+ classLoader
+ )
+ );
+
+ final String dumpBefore = Dump.getLastDumpFileName();
+
+ final Class> fixtureType = MissingOptionalTypeFixture.loadClassWithMissingTypeSignature();
+ final String dumpAfter = Dump.getLastDumpFileName();
+
+ assertThatExceptionOfType(TypeNotPresentException.class)
+ .isThrownBy(fixtureType::getGenericSuperclass)
+ .withMessageContaining(MissingOptionalTypeFixture.MISSING_TYPE_NAME);
+ assertThat(dumpAfter)
+ .as("last AspectJ dump file")
+ .isEqualTo(dumpBefore);
+ }
+
@Test
void shouldHandleAssertEquals() {
final AllureResults results = runWithinTestContext(
@@ -38,4 +68,24 @@ void shouldHandleAssertEquals() {
.extracting(StepResult::getName)
.containsExactly("assert 'expectedString' Equals 'actualString'");
}
+
+ @Test
+ void shouldHandleAssertThrows() {
+ final AllureResults results = runWithinTestContext(
+ () -> assertThrows(IllegalStateException.class, () -> {
+ throw new IllegalStateException("expected");
+ }),
+ AllureJupiterAssert::setLifecycle
+ );
+
+ assertThat(results.getTestResults())
+ .flatExtracting(TestResult::getSteps)
+ .singleElement()
+ .satisfies(step -> {
+ assertThat(step.getName())
+ .startsWith("assert 'class java.lang.IllegalStateException' Throws '");
+ assertThat(step.getStatus())
+ .isEqualTo(Status.PASSED);
+ });
+ }
}
diff --git a/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalTypeFixture.java b/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalTypeFixture.java
new file mode 100644
index 000000000..6008ba628
--- /dev/null
+++ b/allure-jupiter-assert/src/test/java/io/qameta/allure/jupiterassert/fixture/MissingOptionalTypeFixture.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2016-2026 Qameta Software Inc
+ *
+ * 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
+ *
+ * http://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 io.qameta.allure.jupiterassert.fixture;
+
+import java.util.function.Function;
+
+/**
+ * Loads a bounded generic subclass whose type argument is deliberately absent at runtime.
+ */
+public final class MissingOptionalTypeFixture {
+
+ public static final String MISSING_TYPE_NAME = "io.qameta.allure.jupiterassert.fixture.MissingOptionalType";
+
+ private MissingOptionalTypeFixture() {
+ }
+
+ public static Class> loadClassWithMissingTypeSignature() {
+ return MissingTypeProperties.class;
+ }
+
+ private interface TypeProperties {
+
+ Class extends T> getType();
+
+ String get(T instance);
+
+ }
+
+ private static class MappedProperties implements TypeProperties {
+
+ @Override
+ public Class extends T> getType() {
+ return null;
+ }
+
+ protected void add(final Function getter) {
+ //fixture method, should be empty
+ }
+
+ @Override
+ public String get(final T instance) {
+ return null;
+ }
+
+ }
+
+ private static final class MissingTypeProperties extends MappedProperties {
+
+ @Override
+ public Class extends MissingOptionalType> getType() {
+ return null;
+ }
+
+ private MissingTypeProperties() {
+ add(MissingOptionalType::getValue);
+ }
+
+ }
+
+}
diff --git a/gradle.properties b/gradle.properties
index 5cb84fd2d..2668e71ce 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-version=2.35.4
+version=2.35.5-SNAPSHOT
org.gradle.daemon=true
org.gradle.parallel=true
From 8fc77b601516c7447a51b048ffad8fed5c7936cd Mon Sep 17 00:00:00 2001
From: qameta-ci
Date: Fri, 4 Sep 2026 16:52:20 +0000
Subject: [PATCH 6/7] release 2.35.5
---
gradle.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gradle.properties b/gradle.properties
index 2668e71ce..87318df67 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-version=2.35.5-SNAPSHOT
+version=2.35.5
org.gradle.daemon=true
org.gradle.parallel=true
From 9492d27c9cb8dc5866c0dd219bea38d8f7b9dd30 Mon Sep 17 00:00:00 2001
From: qameta-ci
Date: Fri, 4 Sep 2026 16:52:22 +0000
Subject: [PATCH 7/7] set next development version 2.36
---
gradle.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gradle.properties b/gradle.properties
index 87318df67..b1ff4bb13 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-version=2.35.5
+version=2.36-SNAPSHOT
org.gradle.daemon=true
org.gradle.parallel=true