From 0336f5650915914500ae3d9b57f2360ba396df43 Mon Sep 17 00:00:00 2001
From: Mark Gunlogson <31893232+noobgramming@users.noreply.github.com>
Date: Mon, 7 Jul 2025 15:31:15 -0500
Subject: [PATCH] AUT-7054 update all deps, bump version, fix linting
---
auto-sdk-java-common/pom.xml | 2 +-
.../auto/context/FrameworkContext.java | 4 +
.../auto/context/PageObjectOptions.java | 15 ++-
.../applause/auto/data/enums/Platform.java | 43 ++++++-
.../auto/data/enums/SwipeDirection.java | 3 -
.../auto/logging/ResultPropertyConverter.java | 8 --
.../logging/ServerSideRemoteLogAppender.java | 4 +-
auto-sdk-java-config/pom.xml | 2 +-
.../applause/auto/config/PropertyHelper.java | 1 -
.../applause/auto/config/SdkConfigBean.java | 1 -
.../auto/config/TestRailConfigBean.java | 1 -
auto-sdk-java-cucumber/pom.xml | 2 +-
.../utils/TestRailConfigBeanMapper.java | 1 -
auto-sdk-java-framework/pom.xml | 2 +-
.../auto/framework/AbstractDriverManager.java | 2 +-
.../selenium/apppush/AppPushHelper.java | 2 +-
auto-sdk-java-helpers/pom.xml | 2 +-
.../com/applause/auto/helpers/SyncHelper.java | 1 -
.../analytics/AnalyticsInterceptor.java | 1 -
.../auto/helpers/analytics/NetworkEntry.java | 6 +-
.../http/mapping/IRestObjectMapper.java | 1 +
auto-sdk-java-integrations/pom.xml | 2 +-
.../auto/config/ApplauseSdkConfigBean.java | 1 -
.../auto/helpers/ApplauseAppPushHelper.java | 2 +-
.../integrations/BasicAuthInterceptor.java | 1 -
auto-sdk-java-page-object/pom.xml | 2 +-
.../pageobjectmodel/base/BaseComponent.java | 9 +-
.../pageobjectmodel/base/BaseElement.java | 3 -
.../auto/pageobjectmodel/base/LocatedBy.java | 11 +-
.../pageobjectmodel/elements/Checkbox.java | 1 -
.../pageobjectmodel/elements/TextBox.java | 1 -
.../pageobjectmodel/factory/LazyList.java | 25 +++-
.../factory/LazyWebElement.java | 27 ++++-
auto-sdk-java-reporting/pom.xml | 2 +-
.../auto/reporting/ISessionInitializer.java | 1 +
.../auto/reporting/ShutdownHandler.java | 3 +-
auto-sdk-java-rest-clients/pom.xml | 2 +-
.../api/InternalTestCycleApi.java | 1 +
.../util/applausepublicapi/api/KeysApi.java | 1 +
auto-sdk-java-testng/pom.xml | 4 +-
.../com/applause/auto/testng/BaseTest.java | 1 -
.../auto/testng/TestRailConfigBeanMapper.java | 1 -
.../IApplauseTestCaseIdOverride.java | 1 +
.../dataprovider/IDriverConfigOverride.java | 1 +
.../dataprovider/IParameterOverride.java | 1 +
.../dataprovider/ITestIterationTag.java | 2 +-
.../dataprovider/ITestRailCaseIdOverride.java | 2 +-
.../testng/dataprovider/TestIterationTag.java | 1 -
build-tools/pmdconfig.xml | 31 +----
build-tools/spotbugs-exclude.xml | 3 +
pom.xml | 107 ++++++++----------
51 files changed, 190 insertions(+), 164 deletions(-)
diff --git a/auto-sdk-java-common/pom.xml b/auto-sdk-java-common/pom.xml
index 4c4de37..5fb4815 100644
--- a/auto-sdk-java-common/pom.xml
+++ b/auto-sdk-java-common/pom.xml
@@ -21,7 +21,7 @@
com.applause
auto-sdk-java
- 6.0.5-SNAPSHOT
+ 6.1.0-SNAPSHOT
auto-sdk-java-common
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/context/FrameworkContext.java b/auto-sdk-java-common/src/main/java/com/applause/auto/context/FrameworkContext.java
index f251b07..1bd7081 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/context/FrameworkContext.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/context/FrameworkContext.java
@@ -20,6 +20,7 @@
import com.applause.auto.logging.ResultPropertyMap;
import com.applause.auto.templates.TemplateManager;
import com.google.common.base.Suppliers;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import freemarker.template.Template;
import java.nio.file.Path;
import java.util.HashMap;
@@ -36,6 +37,9 @@
@AllArgsConstructor
@Data
@RequiredArgsConstructor
+@SuppressFBWarnings(
+ value = "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE",
+ justification = "Lombok @Data generates equals/hashCode; null checks are redundant.")
public class FrameworkContext {
@Setter(value = AccessLevel.NONE)
private final String contextId = UUID.randomUUID().toString();
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/context/PageObjectOptions.java b/auto-sdk-java-common/src/main/java/com/applause/auto/context/PageObjectOptions.java
index 6b3ac6d..0bce0d0 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/context/PageObjectOptions.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/context/PageObjectOptions.java
@@ -20,21 +20,26 @@
import java.time.Duration;
import lombok.AllArgsConstructor;
import lombok.Builder;
-import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
import lombok.NoArgsConstructor;
-import lombok.NonNull;
+import lombok.Setter;
+import lombok.ToString;
/** Additional options used by the PageObjectContext that change how the PageObjectModel behaves */
@AllArgsConstructor
@NoArgsConstructor
@Builder
-@Data
+@Getter
+@Setter
+@EqualsAndHashCode
+@ToString
public class PageObjectOptions {
/** Default timeout for locating elements */
- private @NonNull @Builder.Default Duration timeout = Duration.ofSeconds(10);
+ @Builder.Default private Duration timeout = Duration.ofSeconds(10);
/** Default polling interval for locating elements */
- private @NonNull @Builder.Default Duration pollingInterval = Duration.ofSeconds(1);
+ @Builder.Default private Duration pollingInterval = Duration.ofSeconds(1);
/**
* For lazy list implementations, this flag determines if we throw an exception when no elements
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/Platform.java b/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/Platform.java
index aa49a22..fa635f3 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/Platform.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/Platform.java
@@ -35,39 +35,73 @@
*/
@Getter
public enum Platform {
+ /** Default platform, used as a fallback when no specific platform is matched. */
DEFAULT("Default", null),
+ /** Represents all mobile platforms. */
MOBILE("Mobile", DEFAULT),
+ /** Represents all Android mobile devices. */
MOBILE_ANDROID("MobileAndroid", MOBILE),
+ /** Represents Android mobile phones. */
MOBILE_ANDROID_PHONE("MobileAndroidPhone", MOBILE_ANDROID),
+ /** Represents Android tablets. */
MOBILE_ANDROID_TABLET("MobileAndroidTablet", MOBILE_ANDROID),
+ /** Represents small Android tablets. */
MOBILE_ANDROID_SMALL_TABLET("MobileAndroidSmallTablet", MOBILE_ANDROID),
+ /** Represents all iOS mobile devices. */
MOBILE_IOS("MobileIOS", MOBILE),
+ /** Represents iOS mobile phones. */
MOBILE_IOS_PHONE("MobileIOSPhone", MOBILE_IOS),
+ /** Represents iOS tablets. */
MOBILE_IOS_TABLET("MobileIOSTablet", MOBILE_IOS),
+ /** Represents small iOS tablets. */
MOBILE_IOS_SMALL_TABLET("MobileIOSSmallTablet", MOBILE_IOS),
+ /** Represents all web platforms. */
WEB("Web", DEFAULT),
+ /** Represents desktop web platforms. */
WEB_DESKTOP("WebDesktop", WEB),
+ /** Represents Chrome browser on desktop. */
WEB_DESKTOP_CHROME("WebDesktopChrome", WEB_DESKTOP),
+ /** Represents Edge browser on desktop. */
WEB_DESKTOP_EDGE("WebDesktopEdge", WEB_DESKTOP),
+ /** Represents Firefox browser on desktop. */
WEB_DESKTOP_FIREFOX("WebDesktopFirefox", WEB_DESKTOP),
+ /** Represents Internet Explorer browser on desktop. */
WEB_DESKTOP_IE("WebDesktopIE", WEB_DESKTOP),
+ /** Represents Safari browser on desktop. */
WEB_DESKTOP_SAFARI("WebDesktopSafari", WEB_DESKTOP),
+ /** Represents all web mobile platforms. */
WEB_MOBILE("WebMobile", WEB),
+ /** Represents web mobile phones. */
WEB_MOBILE_PHONE("WebMobilePhone", WEB_MOBILE),
+ /** Represents Android web mobile phones. */
WEB_ANDROID_PHONE("WebAndroidPhone", WEB_MOBILE_PHONE),
+ /** Represents iOS web mobile phones. */
WEB_IOS_PHONE("WebIOSPhone", WEB_MOBILE_PHONE),
+ /** Represents web mobile tablets. */
WEB_MOBILE_TABLET("WebMobileTablet", WEB_MOBILE),
+ /** Represents Android web mobile tablets. */
WEB_ANDROID_TABLET("WebAndroidTablet", WEB_MOBILE_TABLET),
+ /** Represents iOS web mobile tablets. */
WEB_IOS_TABLET("WebIOSTablet", WEB_MOBILE_TABLET),
+ /** Represents web mobile small tablets. */
WEB_MOBILE_SMALL_TABLET("WebMobileSmallTablet", WEB_MOBILE),
+ /** Represents Android web mobile small tablets. */
WEB_ANDROID_SMALL_TABLET("WebAndroidSmallTablet", WEB_MOBILE_SMALL_TABLET),
+ /** Represents iOS web mobile small tablets. */
WEB_IOS_SMALL_TABLET("WebIOSSmallTablet", WEB_MOBILE_SMALL_TABLET),
+ /** Represents all OTT (over-the-top) platforms. */
OTT("OTT", DEFAULT),
+ /** Represents Amazon Fire TV OTT platform. */
OTT_FIRE_TV("OttFireTv", OTT),
+ /** Represents Amazon Fire TV 4K OTT platform. */
OTT_FIRE_TV_4K("OttFireTv4k", OTT_FIRE_TV),
+ /** Represents Apple TV OTT platform. */
OTT_APPLE_TV("OttAppleTv", OTT),
+ /** Represents Apple TV 4K OTT platform. */
OTT_APPLE_TV_4K("OttAppleTv4k", OTT_APPLE_TV),
+ /** Represents Google Chromecast OTT platform. */
OTT_CHROMECAST("OttChromecast", OTT),
+ /** Represents Android TV OTT platform. */
OTT_ANDROID_TV("OttAndroidTv", OTT);
private static final Logger logger = LogManager.getLogger(Platform.class);
@@ -120,14 +154,15 @@ public static boolean hasNativeFallback(final @NonNull Platform p) {
* @param p the current Platform
* @return if chain falls back to MobileNative (Platform.MOBILE)
*/
- @SuppressWarnings({"PMD.AvoidBranchingStatementAsLastInLoop", "PMD.SimplifyBooleanReturns"})
public boolean hasFallback(final @NonNull Platform p) {
+ boolean result = false;
// If the platforms match, then this falls back to the provided platform
if (this == p) {
- return true;
+ result = true;
+ } else if (this.fallback != null) {
+ result = this.fallback.hasFallback(p);
}
- // If we have a fallback, check if it falls back to the requested platform
- return this.fallback != null && this.fallback.hasFallback(p);
+ return result;
}
@Override
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/SwipeDirection.java b/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/SwipeDirection.java
index 5ca4fbe..dc095db 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/SwipeDirection.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/data/enums/SwipeDirection.java
@@ -60,9 +60,6 @@ public Pair getSwipeVector(final int width, final int height) {
start = new Point((int) (width * 0.15), height / 2);
yield new Point((int) (width * 0.85), height / 2);
}
- default ->
- throw new IllegalArgumentException(
- "Invalid SwipeDirection value specified, somehow.");
};
return Pair.of(start, end);
}
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ResultPropertyConverter.java b/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ResultPropertyConverter.java
index a4e36b6..94e41cd 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ResultPropertyConverter.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ResultPropertyConverter.java
@@ -57,10 +57,6 @@ public final class ResultPropertyConverter extends LogEventPatternConverter {
*
* @param properties options, may be null.
*/
- @SuppressWarnings({
- "PMD.UnusedFormalParameter",
- "PMD.UseVarargs",
- })
private ResultPropertyConverter(final String... properties) {
super("ResultProperty", "resultProperty");
this.properties = new ArrayList<>();
@@ -94,10 +90,6 @@ private ResultPropertyConverter(final String... properties) {
* @param properties options, may be null.
* @return instance of pattern converter.
*/
- @SuppressWarnings({
- "PMD.UnusedFormalParameter",
- "PMD.UseVarargs",
- })
public static ResultPropertyConverter newInstance(final String... properties) {
return new ResultPropertyConverter(properties);
}
diff --git a/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ServerSideRemoteLogAppender.java b/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ServerSideRemoteLogAppender.java
index d41c1b5..e0d9e63 100644
--- a/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ServerSideRemoteLogAppender.java
+++ b/auto-sdk-java-common/src/main/java/com/applause/auto/logging/ServerSideRemoteLogAppender.java
@@ -17,8 +17,8 @@
*/
package com.applause.auto.logging;
-import com.google.common.base.Charsets;
import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
@@ -79,6 +79,6 @@ public static ServerSideRemoteLogAppender createAppender(
@Override
public void append(final LogEvent logEvent) {
// code inspired by Log4J source to behave like their other appender
- LogOutputSingleton.put(new String(layout.toByteArray(logEvent), Charsets.UTF_8));
+ LogOutputSingleton.put(new String(layout.toByteArray(logEvent), StandardCharsets.UTF_8));
}
}
diff --git a/auto-sdk-java-config/pom.xml b/auto-sdk-java-config/pom.xml
index 73e7b28..c49adb1 100644
--- a/auto-sdk-java-config/pom.xml
+++ b/auto-sdk-java-config/pom.xml
@@ -21,7 +21,7 @@
com.applause
auto-sdk-java
- 6.0.5-SNAPSHOT
+ 6.1.0-SNAPSHOT
auto-sdk-java-config
diff --git a/auto-sdk-java-config/src/main/java/com/applause/auto/config/PropertyHelper.java b/auto-sdk-java-config/src/main/java/com/applause/auto/config/PropertyHelper.java
index 216fcf4..6347d67 100644
--- a/auto-sdk-java-config/src/main/java/com/applause/auto/config/PropertyHelper.java
+++ b/auto-sdk-java-config/src/main/java/com/applause/auto/config/PropertyHelper.java
@@ -201,7 +201,6 @@ static String hidePasswordOrKey(final String value) {
return sb.toString();
}
- @SuppressWarnings("PMD.CognitiveComplexity")
static String callForValueAsString(
final @NonNull Method method, final @NonNull T configBean) {
String defaultReturnValue = NO_VALUE;
diff --git a/auto-sdk-java-config/src/main/java/com/applause/auto/config/SdkConfigBean.java b/auto-sdk-java-config/src/main/java/com/applause/auto/config/SdkConfigBean.java
index 8d61f4a..f129f46 100644
--- a/auto-sdk-java-config/src/main/java/com/applause/auto/config/SdkConfigBean.java
+++ b/auto-sdk-java-config/src/main/java/com/applause/auto/config/SdkConfigBean.java
@@ -31,7 +31,6 @@
*/
@LoadPolicy(LoadType.MERGE)
@Sources({"classpath:props/system.properties"})
-@SuppressWarnings("PMD.ExcessivePublicCount")
public interface SdkConfigBean extends Config {
/**
diff --git a/auto-sdk-java-config/src/main/java/com/applause/auto/config/TestRailConfigBean.java b/auto-sdk-java-config/src/main/java/com/applause/auto/config/TestRailConfigBean.java
index 33f8790..25b8be5 100644
--- a/auto-sdk-java-config/src/main/java/com/applause/auto/config/TestRailConfigBean.java
+++ b/auto-sdk-java-config/src/main/java/com/applause/auto/config/TestRailConfigBean.java
@@ -29,7 +29,6 @@
@LoadPolicy(LoadType.MERGE)
// testrail.properties comes from the user of the SDK.
@Sources({"classpath:props/testrail.properties", "classpath:cfg/testrail_default.properties"})
-@SuppressWarnings({"PMD.JUnit4TestShouldUseTestAnnotation"})
public interface TestRailConfigBean extends Config {
/**
diff --git a/auto-sdk-java-cucumber/pom.xml b/auto-sdk-java-cucumber/pom.xml
index db6b297..656e787 100644
--- a/auto-sdk-java-cucumber/pom.xml
+++ b/auto-sdk-java-cucumber/pom.xml
@@ -21,7 +21,7 @@
com.applause
auto-sdk-java
- 6.0.5-SNAPSHOT
+ 6.1.0-SNAPSHOT
auto-sdk-java-cucumber
diff --git a/auto-sdk-java-cucumber/src/main/java/com/applause/auto/cucumber/utils/TestRailConfigBeanMapper.java b/auto-sdk-java-cucumber/src/main/java/com/applause/auto/cucumber/utils/TestRailConfigBeanMapper.java
index cc87fc6..ea62372 100644
--- a/auto-sdk-java-cucumber/src/main/java/com/applause/auto/cucumber/utils/TestRailConfigBeanMapper.java
+++ b/auto-sdk-java-cucumber/src/main/java/com/applause/auto/cucumber/utils/TestRailConfigBeanMapper.java
@@ -25,7 +25,6 @@
/** Convenience class that maps the TestRail config interface into a class */
@Getter
-@SuppressWarnings("PMD.JUnit4TestShouldUseTestAnnotation")
public final class TestRailConfigBeanMapper {
private TestRailConfigBeanMapper() {
diff --git a/auto-sdk-java-framework/pom.xml b/auto-sdk-java-framework/pom.xml
index 19aa62c..69e2604 100644
--- a/auto-sdk-java-framework/pom.xml
+++ b/auto-sdk-java-framework/pom.xml
@@ -21,7 +21,7 @@
com.applause
auto-sdk-java
- 6.0.5-SNAPSHOT
+ 6.1.0-SNAPSHOT
auto-sdk-java-framework
diff --git a/auto-sdk-java-framework/src/main/java/com/applause/auto/framework/AbstractDriverManager.java b/auto-sdk-java-framework/src/main/java/com/applause/auto/framework/AbstractDriverManager.java
index ff7ae47..f7ed26f 100644
--- a/auto-sdk-java-framework/src/main/java/com/applause/auto/framework/AbstractDriverManager.java
+++ b/auto-sdk-java-framework/src/main/java/com/applause/auto/framework/AbstractDriverManager.java
@@ -41,7 +41,7 @@
@RequiredArgsConstructor
@Log4j2
public abstract class AbstractDriverManager {
- protected static final Gson gsonLenient = new GsonBuilder().setLenient().create();
+ protected static final Gson gsonLenient = new GsonBuilder().create();
private final RetryPolicyBuilder