From 8fb6afb84ec8ca0a0b582508791ab96940dd8a7a Mon Sep 17 00:00:00 2001 From: JingMatrix Date: Thu, 31 Oct 2024 12:07:14 +0100 Subject: [PATCH] Rename Apache class names to avoid conflicts We add a gradle task to rename class names in the Apache library --- .gitignore | 1 + apache/build.gradle.kts | 22 +++++++++++++++++++ .../lang3/reflect => }/MemberUtilsX.java | 0 .../de/robv/android/xposed/XposedHelpers.java | 8 +++---- .../lsposed/lspd/service/ConfigManager.java | 6 ++--- 5 files changed, 30 insertions(+), 7 deletions(-) rename apache/local/{org/apache/commons/lang3/reflect => }/MemberUtilsX.java (100%) diff --git a/.gitignore b/.gitignore index b4a5eabfb47..9be6d25cf41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +apache/local/generated .project .settings .cache diff --git a/apache/build.gradle.kts b/apache/build.gradle.kts index af8055912b2..30af6ab211b 100644 --- a/apache/build.gradle.kts +++ b/apache/build.gradle.kts @@ -14,3 +14,25 @@ java { } } } + +val lang3Src = "commons-lang/src/main/java/org/apache/commons/lang3" +val localDir = "local/generated" + +task("ClassUtilsX") { + from("$lang3Src/ClassUtils.java") + into(localDir) + filter { line: String -> line.replace("ClassUtils", "ClassUtilsX") } + rename("(.+).java", "$1X.java") +} + +task("SerializationUtilsX") { + from("$lang3Src/SerializationUtils.java") + into(localDir) + filter { line: String -> line.replace("SerializationUtils", "SerializationUtilsX") } + rename("(.+).java", "$1X.java") +} + +tasks.compileJava { + dependsOn("ClassUtilsX") + dependsOn("SerializationUtilsX") +} diff --git a/apache/local/org/apache/commons/lang3/reflect/MemberUtilsX.java b/apache/local/MemberUtilsX.java similarity index 100% rename from apache/local/org/apache/commons/lang3/reflect/MemberUtilsX.java rename to apache/local/MemberUtilsX.java diff --git a/core/src/main/java/de/robv/android/xposed/XposedHelpers.java b/core/src/main/java/de/robv/android/xposed/XposedHelpers.java index a0495fbf7e5..592be83d88a 100644 --- a/core/src/main/java/de/robv/android/xposed/XposedHelpers.java +++ b/core/src/main/java/de/robv/android/xposed/XposedHelpers.java @@ -26,7 +26,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.ClassUtilsX; import org.apache.commons.lang3.reflect.MemberUtilsX; import java.io.ByteArrayOutputStream; @@ -202,7 +202,7 @@ public static Class findClass(String className, ClassLoader classLoader) { if (classLoader == null) classLoader = XposedBridge.BOOTCLASSLOADER; try { - return ClassUtils.getClass(classLoader, className, false); + return ClassUtilsX.getClass(classLoader, className, false); } catch (ClassNotFoundException e) { throw new ClassNotFoundError(e); } @@ -540,7 +540,7 @@ public static Method findMethodBestMatch(Class clazz, String methodName, Clas continue; // compare name and parameters - if (method.getName().equals(k.name) && ClassUtils.isAssignable( + if (method.getName().equals(k.name) && ClassUtilsX.isAssignable( k.parameters, method.getParameterTypes(), true)) { @@ -763,7 +763,7 @@ public static Constructor findConstructorBestMatch(Class clazz, Class.. Constructor[] constructors = k.clazz.getDeclaredConstructors(); for (Constructor constructor : constructors) { // compare name and parameters - if (ClassUtils.isAssignable( + if (ClassUtilsX.isAssignable( k.parameters, constructor.getParameterTypes(), true)) { diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java index 77b8ee94643..c4308768673 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java @@ -51,7 +51,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.apache.commons.lang3.SerializationUtils; +import org.apache.commons.lang3.SerializationUtilsX; import org.lsposed.daemon.BuildConfig; import org.lsposed.lspd.models.Application; import org.lsposed.lspd.models.Module; @@ -464,7 +464,7 @@ Map> fetchModuleConfig(String name, int user_id) var group = cursor.getString(groupIdx); var key = cursor.getString(keyIdx); var data = cursor.getBlob(dataIdx); - var object = SerializationUtils.deserialize(data); + var object = SerializationUtilsX.deserialize(data); if (object == null) continue; config.computeIfAbsent(group, g -> new HashMap<>()).put(key, object); } @@ -491,7 +491,7 @@ public void updateModulePrefs(String moduleName, int userId, String group, Map