diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml index 65b3d73518dfec..35a261a4258e60 100644 --- a/.github/workflows/full-android.yaml +++ b/.github/workflows/full-android.yaml @@ -33,13 +33,13 @@ jobs: name: Run env: - JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64/ + JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64/ runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-android:112 + image: ghcr.io/project-chip/chip-build-android:113 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml index ad95d3dec7ad03..265c2763944693 100644 --- a/.github/workflows/java-tests.yaml +++ b/.github/workflows/java-tests.yaml @@ -43,7 +43,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-java:104 + image: ghcr.io/project-chip/chip-build-java:113 options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0" @@ -75,7 +75,7 @@ jobs: # TODO: this direct path loading is not maintainable. Our build system should define and # support test classes. run: | - $JAVA_PATH/bin/java \ + $JAVA_HOME/bin/java \ -cp 'third_party/java_deps/artifacts/*:out/linux-x64-tests/lib/src/controller/java/*' \ org.junit.runner.JUnitCore \ matter.tlv.TlvWriterTest \ diff --git a/.github/workflows/smoketest-android.yaml b/.github/workflows/smoketest-android.yaml index 5712f3427dc848..c2adf9f4093a51 100644 --- a/.github/workflows/smoketest-android.yaml +++ b/.github/workflows/smoketest-android.yaml @@ -31,13 +31,13 @@ jobs: name: Smoke Run - Android env: - JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64/ + JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64/ runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-android:108 + image: ghcr.io/project-chip/chip-build-android:113 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" diff --git a/build/chip/java/config.gni b/build/chip/java/config.gni index 350b7fdee34717..fc0d5d99cd92be 100644 --- a/build/chip/java/config.gni +++ b/build/chip/java/config.gni @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -java_path = getenv("JAVA_PATH") +java_home = getenv("JAVA_HOME") declare_args() { java_matter_controller_dependent_paths = [] @@ -24,15 +24,15 @@ declare_args() { matter_enable_tlv_decoder_api = true matter_enable_java_compilation = false - if (java_path != "" && (current_os == "linux" || current_os == "mac")) { - java_matter_controller_dependent_paths += [ "${java_path}/include/" ] + if (java_home != "" && (current_os == "linux" || current_os == "mac")) { + java_matter_controller_dependent_paths += [ "${java_home}/include/" ] if (current_os == "mac") { java_matter_controller_dependent_paths += - [ "${java_path}/include/darwin/" ] + [ "${java_home}/include/darwin/" ] } else { java_matter_controller_dependent_paths += - [ "${java_path}/include/linux/" ] + [ "${java_home}/include/linux/" ] } matter_enable_java_generated_api = false diff --git a/build/chip/java/jar_runner.py b/build/chip/java/jar_runner.py index bd8e1762d36c2b..7d3d52e1d37c75 100755 --- a/build/chip/java/jar_runner.py +++ b/build/chip/java/jar_runner.py @@ -79,8 +79,8 @@ def FindCommand(command): def main(): - java_path = FindCommand('jar') - if not java_path: + java_home = FindCommand('jar') + if not java_home: sys.stderr.write('jar: command not found\n') sys.exit(EXIT_FAILURE) @@ -89,7 +89,7 @@ def main(): sys.stderr.write('usage: %s [jar_args]...\n' % sys.argv[0]) sys.exit(EXIT_FAILURE) - return subprocess.check_call([java_path] + args) + return subprocess.check_call([java_home] + args) if __name__ == '__main__': diff --git a/build/chip/java/javac_runner.py b/build/chip/java/javac_runner.py index 0e03aa53e8aab9..026153d9b5271d 100755 --- a/build/chip/java/javac_runner.py +++ b/build/chip/java/javac_runner.py @@ -93,8 +93,8 @@ def ComputeClasspath(build_config_json): def main(): - java_path = FindCommand('javac') - if not java_path: + java_home = FindCommand('javac') + if not java_home: sys.stderr.write('javac: command not found\n') sys.exit(EXIT_FAILURE) @@ -123,7 +123,7 @@ def main(): build_config_json = ReadBuildConfig(args.build_config) classpath = ComputeClasspath(build_config_json) - java_args = [java_path] + java_args = [java_home] if classpath: java_args += ["-classpath", classpath] diff --git a/build/chip/java/rules.gni b/build/chip/java/rules.gni index cbf105f1926f06..dc0d35ccba0177 100644 --- a/build/chip/java/rules.gni +++ b/build/chip/java/rules.gni @@ -22,7 +22,7 @@ jar_runner = "${chip_root}/build/chip/java/jar_runner.py" write_build_config = "${chip_root}/build/chip/java/write_build_config.py" assert(android_sdk_root != "" || matter_enable_java_compilation, - "android_sdk_root must be specified or JAVA_PATH must be set.") + "android_sdk_root must be specified or JAVA_HOME must be set.") # Declare a java library target # diff --git a/docs/platforms/android/android_building.md b/docs/platforms/android/android_building.md index 830ff11ed3fb4b..c7b87372e38f84 100644 --- a/docs/platforms/android/android_building.md +++ b/docs/platforms/android/android_building.md @@ -56,11 +56,11 @@ downloaded. 4. Apply 3. Install Command Line Tools: 1. Tools -> SDK Manager -> SDK Tools Tab -> Android SDK Command Line Tools - (latest) + 10.0 2. Apply -4. Install SDK 26: - 1. Tools -> SDK Manager -> SDK Platforms Tab -> Android 8.0 (Oreo) SDK Level - 26 +4. Install SDK 30: + 1. Tools -> SDK Manager -> SDK Platforms Tab -> Android 11.0 (R) SDK Level + 30 2. Apply 5. Install Emulator: 1. Tools -> Device Manager -> Create device -> Pixel 5 -> Android S API 31 @@ -98,21 +98,21 @@ architecture: ### Gradle & JDK Version -All Android projects utilize Gradle version 7.3.3 and JDK version 17.0. +All Android projects utilize Gradle version 7.3.3 and JDK version 11.0. -For developer using openjdk-17-jdk in MacOS, the JAVA_HOME environment variable -can be configured as follows via `sdkman`: +For developer using java 11 in MacOS, the JAVA can be configured as follows via +`sdkman`: ``` -sdk install java 17.0.4.1-tem +sdk install java 11.0.26-tem ``` -For developer using openjdk-17-jdk in Linux, the JAVA_HOME environment variable +For developer using openjdk-11-jdk in Linux, the JAVA_HOME environment variable can be configured as follows: ``` -sudo apt-get install openjdk-17-jdk -export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 +sudo apt-get install openjdk-11-jdk +export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ``` diff --git a/examples/android/CHIPTest/BUILD.gn b/examples/android/CHIPTest/BUILD.gn index 7dee07e6f693c1..e465415a221f72 100644 --- a/examples/android/CHIPTest/BUILD.gn +++ b/examples/android/CHIPTest/BUILD.gn @@ -72,7 +72,7 @@ android_library("java") { } java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } group("default") { diff --git a/examples/java-matter-controller/README.md b/examples/java-matter-controller/README.md index 7f557d5e82fc72..46234e02cf514e 100644 --- a/examples/java-matter-controller/README.md +++ b/examples/java-matter-controller/README.md @@ -9,8 +9,9 @@ cluster requests to a Matter device - [Matter Controller Java App Example](#matter-controller-java-app-example) - [Requirements for building](#requirements-for-building) + - [Linux](#linux) - [Preparing for build](#preparing-for-build) - - [Building & Running the app](#building--running-the-app) + - [Building \& Running the app](#building--running-the-app)
@@ -47,6 +48,8 @@ system. You can install it through the following command as root: sudo apt install default-jdk ``` +Note: Current matter controller java app example needs java 8+. + You also need to install kotlin compiler on your Ubuntu system: kotlin compiler version 1.8.10 or above is needed to compile @@ -93,7 +96,7 @@ export PATH="/usr/lib/kotlinc/bin:$PATH" ### Linux ```shell -export JAVA_PATH=[JDK path] +export JAVA_HOME=[JDK path] ```
diff --git a/examples/kotlin-matter-controller/README.md b/examples/kotlin-matter-controller/README.md index 71a954e711e0b5..624df71b544dce 100644 --- a/examples/kotlin-matter-controller/README.md +++ b/examples/kotlin-matter-controller/README.md @@ -7,8 +7,9 @@ control Matter accessory devices. - [Matter Controller Kotlin App Example](#matter-controller-kotlin-app-example) - [Requirements for building](#requirements-for-building) + - [Linux](#linux) - [Preparing for build](#preparing-for-build) - - [Building & Running the app](#building--running-the-app) + - [Building \& Running the app](#building--running-the-app)
@@ -82,7 +83,7 @@ export PATH="/usr/lib/kotlinc/bin:$PATH" ### Linux ```shell -export JAVA_PATH=[JDK path] +export JAVA_HOME=[JDK path] ```
diff --git a/examples/tv-app/android/BUILD.gn b/examples/tv-app/android/BUILD.gn index f08f16f363e516..4978c5c2173778 100644 --- a/examples/tv-app/android/BUILD.gn +++ b/examples/tv-app/android/BUILD.gn @@ -167,11 +167,11 @@ android_library("java") { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } group("default") { diff --git a/examples/tv-casting-app/android/BUILD.gn b/examples/tv-casting-app/android/BUILD.gn index 18937b34d97e52..82f68ad0af1dfe 100644 --- a/examples/tv-casting-app/android/BUILD.gn +++ b/examples/tv-casting-app/android/BUILD.gn @@ -120,11 +120,11 @@ android_library("java") { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } group("default") { diff --git a/examples/virtual-device-app/android/BUILD.gn b/examples/virtual-device-app/android/BUILD.gn index 7f071107544719..79b77f5e76810f 100644 --- a/examples/virtual-device-app/android/BUILD.gn +++ b/examples/virtual-device-app/android/BUILD.gn @@ -85,11 +85,11 @@ android_library("java") { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } group("default") { diff --git a/integrations/cloudbuild/smoke-test.yaml b/integrations/cloudbuild/smoke-test.yaml index b1100a8adc166f..174ef4b8bfe32b 100644 --- a/integrations/cloudbuild/smoke-test.yaml +++ b/integrations/cloudbuild/smoke-test.yaml @@ -140,7 +140,7 @@ steps: - name: pwenv path: /pwenv - - name: "ghcr.io/project-chip/chip-build-vscode:112" + - name: "ghcr.io/project-chip/chip-build-vscode:113" id: Android env: - PW_ENVIRONMENT_ROOT=/pwenv diff --git a/scripts/build/builders/android.py b/scripts/build/builders/android.py index 3f640177f190ad..fa112e9aaf7911 100644 --- a/scripts/build/builders/android.py +++ b/scripts/build/builders/android.py @@ -164,9 +164,9 @@ def validate_build_environment(self): os.environ["ANDROID_HOME"], "tools", "bin", "sdkmanager" ) - # New SDK manager at cmdline-tools/latest/bin/ + # New SDK manager at cmdline-tools/10.0/bin/ new_sdk_manager = os.path.join( - os.environ["ANDROID_HOME"], "cmdline-tools", "latest", "bin", "sdkmanager" + os.environ["ANDROID_HOME"], "cmdline-tools", "10.0", "bin", "sdkmanager" ) if not ( os.path.isfile(sdk_manager) and os.access(sdk_manager, os.X_OK) @@ -413,7 +413,7 @@ def generate(self): new_sdk_manager = os.path.join( os.environ["ANDROID_HOME"], "cmdline-tools", - "latest", + "10.0", "bin", "sdkmanager", ) diff --git a/scripts/build/builders/host.py b/scripts/build/builders/host.py index 8dd1cf3e93dd98..b6f46a509d06dc 100644 --- a/scripts/build/builders/host.py +++ b/scripts/build/builders/host.py @@ -556,7 +556,7 @@ def SysRootPath(self, name): def generate(self): super(HostBuilder, self).generate() - if 'JAVA_PATH' in os.environ: + if 'JAVA_HOME' in os.environ: self._Execute( ["third_party/java_deps/set_up_java_deps.sh"], title="Setting up Java deps", diff --git a/scripts/build/test.py b/scripts/build/test.py index f1488ba17b870a..6fa25fec257443 100644 --- a/scripts/build/test.py +++ b/scripts/build/test.py @@ -47,7 +47,7 @@ def build_actual_output(root: str, out: str, args: List[str]) -> List[str]: 'NXP_K32W0_SDK_ROOT': 'TEST_NXP_K32W0_SDK_ROOT', 'IMX_SDK_ROOT': 'IMX_SDK_ROOT', 'TI_SYSCONFIG_ROOT': 'TEST_TI_SYSCONFIG_ROOT', - 'JAVA_PATH': 'TEST_JAVA_PATH', + 'JAVA_HOME': 'TEST_JAVA_HOME', 'GSDK_ROOT': 'TEST_GSDK_ROOT', 'WISECONNECT_SDK_ROOT': 'TEST_WISECONNECT_SDK_ROOT', 'WIFI_SDK_ROOT': 'TEST_WIFI_SDK_ROOT', diff --git a/src/app/server/java/BUILD.gn b/src/app/server/java/BUILD.gn index deb85f7da22adc..f70157f65ce9c1 100644 --- a/src/app/server/java/BUILD.gn +++ b/src/app/server/java/BUILD.gn @@ -74,9 +74,9 @@ android_library("java") { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } diff --git a/src/controller/java/BUILD.gn b/src/controller/java/BUILD.gn index f8eeee3fd7b93b..0ddc1f8a2a7d43 100644 --- a/src/controller/java/BUILD.gn +++ b/src/controller/java/BUILD.gn @@ -679,7 +679,7 @@ android_library("java") { ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } if (chip_link_tests) { @@ -711,7 +711,7 @@ if (chip_link_tests) { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } android_library("tests") { @@ -746,12 +746,12 @@ if (chip_link_tests) { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } } if (!matter_enable_java_compilation) { java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } } diff --git a/src/messaging/tests/java/BUILD.gn b/src/messaging/tests/java/BUILD.gn index c33257846ca8f5..021d937add2a0c 100644 --- a/src/messaging/tests/java/BUILD.gn +++ b/src/messaging/tests/java/BUILD.gn @@ -79,11 +79,11 @@ android_library("java") { javac_flags = [ "-Xlint:deprecation" ] # TODO: add classpath support (we likely need to add something like - # ..../platforms/android-26/android.jar to access BLE items) + # ..../platforms/android-30/android.jar to access BLE items) } if (!matter_enable_java_compilation) { java_prebuilt("android") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" } } diff --git a/src/platform/android/BUILD.gn b/src/platform/android/BUILD.gn index e5e915a850fa06..52be2673fffdb9 100644 --- a/src/platform/android/BUILD.gn +++ b/src/platform/android/BUILD.gn @@ -142,5 +142,5 @@ android_library("java") { } java_prebuilt("android_sdk") { - jar_path = "${android_sdk_root}/platforms/android-26/android.jar" + jar_path = "${android_sdk_root}/platforms/android-30/android.jar" }