diff --git a/scripts/core/generate_tdapi_java_file.sh b/scripts/core/generate_tdapi_java_file.sh
index 3a425a0..adc69f5 100755
--- a/scripts/core/generate_tdapi_java_file.sh
+++ b/scripts/core/generate_tdapi_java_file.sh
@@ -54,10 +54,12 @@ echo "Deleting old data..."
[ -d ./generated/tdjni_build/ ] && rm -r ./generated/tdjni_build/
[ -d ./generated/tdjni_bin/ ] && rm -r ./generated/tdjni_bin/
[ -d ./generated/tdjni_docs/ ] && rm -r ./generated/tdjni_docs/
+[ -f ./generated/src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java ] && rm ./generated/src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java
[ -f ./generated/src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java ] && rm ./generated/src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
# Create missing folders
echo "Creating missing folders..."
+[ -d "./generated/src/main/java17/${JAVA_API_PACKAGE_PATH}/" ] || mkdir -p "./generated/src/main/java17/${JAVA_API_PACKAGE_PATH}/"
[ -d "./generated/src/main/java/${JAVA_API_PACKAGE_PATH}/" ] || mkdir -p "./generated/src/main/java/${JAVA_API_PACKAGE_PATH}/"
[ -d "./generated/src/main/java/${JAVA_LIB_PACKAGE_PATH}/" ] || mkdir -p "./generated/src/main/java/${JAVA_LIB_PACKAGE_PATH}/"
[ -d ./generated/tdjni_build/ ] || mkdir ./generated/tdjni_build/
@@ -83,18 +85,32 @@ echo "Telegram source path: '$(realpath -m ./implementation/)'"
echo "Generating TdApi.java..."
./td_tools/td/generate/td_generate_java_api TdApi "./implementation/td/generate/scheme/td_api.tlo" "./src/main/java" "$JAVA_API_PACKAGE_PATH"
php ./implementation/td/generate/JavadocTlDocumentationGenerator.php "./implementation/td/generate/scheme/td_api.tl" "./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java"
+mv "./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java" "./src/main/java/${JAVA_API_PACKAGE_PATH}/php_TdApi.java"
-echo "Patching TdApi.java..."
-${PYTHON_EXECUTABLE} ../scripts/core/tdlib-serializer "$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java)" "$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/new_TdApi.java)" "$(realpath -m ../scripts/core/tdlib-serializer/headers.txt)"
-rm ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
+echo "Patching TdApi.java for Java 17..."
+${PYTHON_EXECUTABLE} ../scripts/core/tdlib-serializer "$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/php_TdApi.java)" "$(realpath -m ./src/main/java17/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java)" "$(realpath -m ../scripts/core/tdlib-serializer/headers.txt)" true
if [[ "$OPERATING_SYSTEM_NAME" == "osx" ]]; then
- unexpand --tabs=2 ./src/main/java/${JAVA_API_PACKAGE_PATH}/new_TdApi.java > ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
+ unexpand --tabs=2 ./src/main/java17/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java > ./src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java
else
- unexpand -t 2 ./src/main/java/${JAVA_API_PACKAGE_PATH}/new_TdApi.java > ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
+ unexpand -t 2 ./src/main/java17/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java > ./src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java
fi
-rm ./src/main/java/${JAVA_API_PACKAGE_PATH}/new_TdApi.java
+rm ./src/main/java17/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java
-echo "Generated '$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java)'"
+echo "Generated '$(realpath -m ./src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java)'"
+
+echo "Patching TdApi.java for Java 8..."
+${PYTHON_EXECUTABLE} ../scripts/core/tdlib-serializer "$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/php_TdApi.java)" "$(realpath -m ./src/main/java/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java)" "$(realpath -m ../scripts/core/tdlib-serializer/headers.txt)" false
+if [[ "$OPERATING_SYSTEM_NAME" == "osx" ]]; then
+ unexpand --tabs=2 ./src/main/java/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java > ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
+else
+ unexpand -t 2 ./src/main/java/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java > ./src/main/java/${JAVA_API_PACKAGE_PATH}/TdApi.java
+fi
+rm ./src/main/java/${JAVA_API_PACKAGE_PATH}/unexpanded_TdApi.java
+
+echo "Generated '$(realpath -m ./src/main/java17/${JAVA_API_PACKAGE_PATH}/TdApi.java)'"
+
+
+rm ./src/main/java/${JAVA_API_PACKAGE_PATH}/php_TdApi.java
echo "Done."
exit 0
diff --git a/scripts/core/tdlib-serializer b/scripts/core/tdlib-serializer
index 599c05f..36f96df 160000
--- a/scripts/core/tdlib-serializer
+++ b/scripts/core/tdlib-serializer
@@ -1 +1 @@
-Subproject commit 599c05f320898f37bd9e52f917ae4bcb2ecc2f2b
+Subproject commit 36f96dfaf59b8add1813d57cc12467ae8eef55f0
diff --git a/src/main/tdapi-project-src/pom.template.xml b/src/main/tdapi-project-src/pom.template.xml
index d0b2fd6..525b4a4 100644
--- a/src/main/tdapi-project-src/pom.template.xml
+++ b/src/main/tdapi-project-src/pom.template.xml
@@ -134,6 +134,20 @@
9
+
+
+ java-17-module-compile
+
+ compile
+
+
+ 17
+
+ ${project.basedir}/src/main/java17
+
+ true
+
+
java-9-module-compile