Skip to content

Commit 958f4b1

Browse files
authored
refactor: Avoid using reflection to manage AppiumCommandExecutor state (appium#2356)
1 parent 1b0c6de commit 958f4b1

File tree

3 files changed

+3
-29
lines changed

3 files changed

+3
-29
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ dependencies {
100100
### Compatibility Matrix
101101
Appium Java Client | Selenium client
102102
----------------------------------------------------------------------------------------------------|-----------------------------
103+
`next` (not released yet) | `4.36.0`
103104
`10.0.0` | `4.35.0`, `4.36.0`
104105
`9.5.0` | `4.34.0`
105106
`9.4.0` | `4.26.0`, `4.27.0`, `4.28.0`, `4.28.1`, `4.29.0`, `4.30.0`, `4.31.0`, `4.32.0`, `4.33.0`

src/main/java/io/appium/java_client/internal/ReflectionHelpers.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,4 @@ public static <T> T setPrivateFieldValue(Class<?> cls, T target, String fieldNam
4444
}
4545
return target;
4646
}
47-
48-
/**
49-
* Fetches the value of a private instance field.
50-
*
51-
* @param cls The target class or a superclass.
52-
* @param target Target instance.
53-
* @param fieldName Target field name.
54-
* @param fieldType Field type.
55-
* @return The retrieved field value.
56-
*/
57-
public static <T> T getPrivateFieldValue(Class<?> cls, Object target, String fieldName, Class<T> fieldType) {
58-
try {
59-
final Field f = cls.getDeclaredField(fieldName);
60-
f.setAccessible(true);
61-
return fieldType.cast(f.get(target));
62-
} catch (NoSuchFieldException | IllegalAccessException e) {
63-
throw new WebDriverException(e);
64-
}
65-
}
6647
}

src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,6 @@ public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands,
119119
this(additionalCommands, service, HttpClient.Factory.createDefault(), appiumClientConfig);
120120
}
121121

122-
@Deprecated
123-
@SuppressWarnings("SameParameterValue")
124-
protected <B> B getPrivateFieldValue(
125-
Class<? extends CommandExecutor> cls, String fieldName, Class<B> fieldType) {
126-
return ReflectionHelpers.getPrivateFieldValue(cls, this, fieldName, fieldType);
127-
}
128-
129122
@Deprecated
130123
@SuppressWarnings("SameParameterValue")
131124
protected void setPrivateFieldValue(
@@ -134,12 +127,11 @@ protected void setPrivateFieldValue(
134127
}
135128

136129
public Map<String, CommandInfo> getAdditionalCommands() {
137-
//noinspection unchecked
138-
return getPrivateFieldValue(HttpCommandExecutor.class, "additionalCommands", Map.class);
130+
return additionalCommands;
139131
}
140132

141133
public Factory getHttpClientFactory() {
142-
return getPrivateFieldValue(HttpCommandExecutor.class, "httpClientFactory", Factory.class);
134+
return httpClientFactory;
143135
}
144136

145137
@Nullable

0 commit comments

Comments
 (0)