Skip to content

Commit 254e857

Browse files
authored
Use javax.annotation.Nullable instead of androidx.annotation.Nullable to decouple Android dependency (#23310)
* Use JSR305 Annotations instead of Android:annotations * Address review comments
1 parent d30cff3 commit 254e857

24 files changed

+71
-25
lines changed

examples/java-matter-controller/BUILD.gn

+1-6
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,16 @@ android_binary("java-matter-controller") {
2323
output_name = "java-matter-controller"
2424

2525
deps = [
26-
":android",
2726
"${chip_root}/src/controller/java",
2827
"${chip_root}/src/setup_payload/java",
29-
"${chip_root}/third_party/android_deps:annotation",
28+
"${chip_root}/third_party/java_deps:annotation",
3029
]
3130

3231
sources = [ "java/src/com/matter/controller/Main.java" ]
3332

3433
javac_flags = [ "-Xlint:deprecation" ]
3534
}
3635

37-
java_prebuilt("android") {
38-
jar_path = "${android_sdk_root}/platforms/android-21/android.jar"
39-
}
40-
4136
group("default") {
4237
deps = [ ":java-matter-controller" ]
4338
}

scripts/build/builders/android.py

+5
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ def generate(self):
310310
title="Setting up Android deps through Gradle",
311311
)
312312

313+
self._Execute(
314+
["third_party/java_deps/set_up_java_deps.sh"],
315+
title="Setting up Java deps",
316+
)
317+
313318
if not os.path.exists(self.output_dir):
314319
# NRF does a in-place update of SDK tools
315320
if not self._runner.dry_run:

scripts/build/testdata/dry_run_android-arm64-chip-tool.txt

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ cd "{root}"
44
# Setting up Android deps through Gradle
55
python3 third_party/android_deps/set_up_android_deps.py
66

7+
# Setting up Java deps
8+
third_party/java_deps/set_up_java_deps.sh
9+
710
# Generating android-arm64-chip-tool
811
gn gen --check --fail-on-unused-args {out}/android-arm64-chip-tool '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" '
912

src/controller/java/BUILD.gn

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ android_library("java") {
6969

7070
deps = [
7171
":android",
72-
"${chip_root}/third_party/android_deps:annotation",
72+
"${chip_root}/third_party/java_deps:annotation",
7373
]
7474

7575
data_deps = [

src/controller/java/src/chip/devicecontroller/ChipDeviceController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919

2020
import android.bluetooth.BluetoothGatt;
2121
import android.util.Log;
22-
import androidx.annotation.Nullable;
2322
import chip.devicecontroller.GetConnectedDeviceCallbackJni.GetConnectedDeviceCallback;
2423
import chip.devicecontroller.model.ChipAttributePath;
2524
import chip.devicecontroller.model.ChipEventPath;
2625
import java.util.ArrayList;
2726
import java.util.List;
2827
import java.util.Optional;
28+
import javax.annotation.Nullable;
2929

3030
/** Controller to interact with the CHIP device. */
3131
public class ChipDeviceController {

src/controller/java/src/chip/devicecontroller/ControllerParams.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package chip.devicecontroller;
22

3-
import androidx.annotation.Nullable;
3+
import javax.annotation.Nullable;
44

55
/** Parameters representing initialization arguments for {@link ChipDeviceController}. */
66
public final class ControllerParams {

src/controller/java/src/chip/devicecontroller/NetworkCredentials.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import android.os.Parcel;
2121
import android.os.Parcelable;
22-
import androidx.annotation.Nullable;
22+
import javax.annotation.Nullable;
2323

2424
/** Class for holding WiFi or Thread credentials, but not both. */
2525
public class NetworkCredentials implements Parcelable {

src/controller/java/src/chip/devicecontroller/OperationalKeyConfig.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package chip.devicecontroller;
22

3-
import androidx.annotation.Nullable;
3+
import javax.annotation.Nullable;
44

55
/** Represents a set of operating credentials for a ChipDeviceController. */
66
public final class OperationalKeyConfig {

src/controller/java/src/chip/devicecontroller/ReportCallbackJni.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package chip.devicecontroller;
1919

20-
import androidx.annotation.Nullable;
20+
import javax.annotation.Nullable;
2121

2222
/** JNI wrapper callback class for {@link ReportCallback}. */
2323
public class ReportCallbackJni {

src/controller/java/src/chip/devicecontroller/ReportEventCallbackJni.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package chip.devicecontroller;
1919

20-
import androidx.annotation.Nullable;
20+
import javax.annotation.Nullable;
2121

2222
/** JNI wrapper callback class for {@link ReportCallback}. */
2323
public class ReportEventCallbackJni {

src/controller/java/src/chip/devicecontroller/model/ClusterState.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
*/
1818
package chip.devicecontroller.model;
1919

20-
import androidx.annotation.Nullable;
2120
import java.util.ArrayList;
2221
import java.util.Map;
2322
import java.util.Optional;
23+
import javax.annotation.Nullable;
2424

2525
/** Class for tracking CHIP cluster state in a hierarchical manner. */
2626
public final class ClusterState {

src/controller/java/src/chip/devicecontroller/model/EndpointState.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
*/
1818
package chip.devicecontroller.model;
1919

20-
import androidx.annotation.Nullable;
2120
import java.util.Map;
21+
import javax.annotation.Nullable;
2222

2323
/** Class for tracking CHIP endpoint state in a hierarchical manner. */
2424
public final class EndpointState {

src/controller/java/src/chip/devicecontroller/model/NodeState.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
*/
1818
package chip.devicecontroller.model;
1919

20-
import androidx.annotation.Nullable;
2120
import java.util.ArrayList;
2221
import java.util.HashMap;
2322
import java.util.Map;
23+
import javax.annotation.Nullable;
2424

2525
/** Class for tracking CHIP node state in a hierarchical manner. */
2626
public final class NodeState {

src/controller/java/templates/ChipClusters-java.zapt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package chip.devicecontroller;
55

6-
import androidx.annotation.Nullable;
6+
import javax.annotation.Nullable;
77
import java.util.ArrayList;
88
import java.util.Arrays;
99
import java.util.List;

src/controller/java/templates/ChipEventStructs-java.zapt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
package chip.devicecontroller;
33

44
{{#if (chip_has_client_clusters)}}
5-
import androidx.annotation.Nullable;
5+
import javax.annotation.Nullable;
66
import java.util.ArrayList;
77
import java.util.Arrays;
88
import java.util.Optional;

src/controller/java/templates/ChipStructs-java.zapt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
package chip.devicecontroller;
33

44
{{#if (chip_has_client_clusters)}}
5-
import androidx.annotation.Nullable;
5+
import javax.annotation.Nullable;
66
import java.util.ArrayList;
77
import java.util.Arrays;
88
import java.util.Optional;

src/controller/java/templates/ClusterInfo-java.zapt

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33

44
package chip.devicecontroller;
55

6-
import androidx.annotation.Nullable;
6+
import javax.annotation.Nullable;
77
import java.util.ArrayList;
88
import java.util.HashMap;
99
import java.util.LinkedHashMap;
1010
import java.util.List;
1111
import java.util.Map;
1212
import java.util.Optional;
13-
import androidx.annotation.Nullable;
13+
import javax.annotation.Nullable;
1414
import chip.clusterinfo.ClusterInfo;
1515
import chip.clusterinfo.InteractionInfo;
1616
import chip.clusterinfo.CommandParameterInfo;

src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/controller/java/zap-generated/chip/devicecontroller/ChipEventStructs.java

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

third_party/java_deps/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
artifacts/

third_party/java_deps/BUILD.gn

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright (c) 2022 Project CHIP Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
# === This BUILD file is auto-generated, modify the GnBuildGenerator task instead of editing this file manually. ===
16+
17+
import("//build_overrides/chip.gni")
18+
import("${chip_root}/build/chip/java/rules.gni")
19+
20+
java_prebuilt("annotation") {
21+
jar_path = "artifacts/jsr305-3.0.2.jar"
22+
}
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env bash
2+
3+
#
4+
# Copyright (c) 2022 Project CHIP Authors
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
18+
19+
mkdir third_party/java_deps/artifacts
20+
curl --fail --location --silent --show-error https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar -o third_party/java_deps/artifacts/jsr305-3.0.2.jar

0 commit comments

Comments
 (0)