Skip to content

Commit a3700ca

Browse files
committed
Address feedback
1 parent 8c979e7 commit a3700ca

File tree

2 files changed

+64
-52
lines changed

2 files changed

+64
-52
lines changed

README.md

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# AWS IoT Device SDK for Java v2
22

3-
The AWS IoT Device SDK for Java v2 connects your Java applications and devices to the AWS IoT platform. Built on the AWS Common Runtime, it handles the complexities of secure communication, authentication, and device management so you can focus on your IoT solution. The SDK makes it easy to use AWS IoT services like Device Shadows, Jobs, Fleet Provisioning, and Commands.
3+
The AWS IoT Device SDK for Java v2 connects your Java applications and devices to the AWS IoT platform. It handles the complexities of secure communication, authentication, and device management so you can focus on your IoT solution. The SDK makes it easy to use AWS IoT services like Device Shadows, Jobs, Fleet Provisioning, and Commands.
44

5-
**Supported Platforms**: Linux, Windows, macOS, [Android](./documents/ANDROID.md)
5+
**Supported Platforms**: Linux, Windows 10+, macOS 10.15+, [Android](./documents/ANDROID.md)
66

77
*__Topics:__*
88
* [Features](#features)
9-
* [Using SDK](#using-sdk)
9+
* [Installation](#installation)
10+
* [Minimum Requirements](#minimum-requirements)
1011
* [Getting Started](#getting-started)
1112
* [Samples](samples)
1213
* [MQTT5 User Guide](./documents/MQTT5_Userguide.md)
@@ -17,20 +18,19 @@ The AWS IoT Device SDK for Java v2 connects your Java applications and devices t
1718

1819
The primary purpose of the AWS IoT Device SDK for Java v2 is to simplify the process of connecting devices to AWS IoT Core and interacting with AWS IoT services on various platforms. The SDK provides:
1920

20-
* Built on the [AWS Common Runtime](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html) for high performance and minimal footprint
21+
* Integrated service clients for AWS IoT Core services
2122
* Secure device connections to AWS IoT Core using MQTT protocol including MQTT 5.0
2223
* Support for [multiple authentication methods and connection types](./documents/MQTT5_Userguide.md#how-to-setup-mqtt5-builder-based-on-desired-connection-method)
2324
* Android [support](./documents/ANDROID.md)
24-
* First-class support for AWS IoT Core services.
2525

2626
#### Supported AWS IoT Core services
2727

28-
* The [AWS IoT Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) service adds shadows to AWS IoT thing objects.
29-
* The [AWS IoT Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) allows to define a set of remote operations that can be sent to and run on one or more devices connected to AWS IoT.
30-
* The [AWS IoT fleet provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html) can generate and securely deliver device certificates and private keys to IoT devices when they connect to AWS IoT for the first time.
31-
* The [AWS IoT Device Management commands](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command.html) allows to send an instruction from the cloud to a device that's connected to AWS IoT.
28+
* The [AWS IoT Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) service manages device state information in the cloud.
29+
* The [AWS IoT Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) service sends remote operations to connected devices.
30+
* The [AWS IoT fleet provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html) service generates and delivers device certificates automatically.
31+
* The [AWS IoT Device Management commands](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command.html) service sends instructions from the cloud to connected devices.
3232

33-
## Using SDK
33+
## Installation
3434

3535
The recommended way to use the AWS IoT Device SDK for Java v2 in your project is to consume it from Maven Central.
3636

@@ -61,27 +61,7 @@ Look up the latest SDK version here: https://github.com/aws/aws-iot-device-sdk-j
6161

6262
### Building AWS IoT SDK from source
6363

64-
``` sh
65-
# Create a workspace directory to hold all the SDK files
66-
mkdir sdk-workspace
67-
cd sdk-workspace
68-
# Clone the repository
69-
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
70-
cd aws-iot-device-sdk-java-v2
71-
# Compile and install
72-
mvn clean install
73-
```
74-
75-
If you wish to use the latest CRT release, rather than the latest tested with the IoT SDK, you can run the following command before running `mvn clean install`:
76-
77-
``` sh
78-
# Update the version of the CRT being used
79-
mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*"
80-
```
81-
82-
#### Building AWS CRT from source
83-
84-
If you also need to build AWS CRT Java from source, visit [AWS CRT Java](https://github.com/awslabs/aws-crt-java?tab=readme-ov-file#platform) project for instructions.
64+
See the [Development Guide](./documents/DEVELOPING.md) for detailed instructions on building from source and using local builds.
8565

8666
## Getting Started
8767

@@ -117,6 +97,9 @@ If you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupp
11797

11898
#### Mac-Only TLS Behavior
11999

100+
> [!NOTE]
101+
> This SDK does not support TLS 1.3 on macOS. Support for TLS 1.3 on macOS is planned for a future release.
102+
120103
Please note that on Mac, once a private key is used with a certificate, that certificate-key pair is imported into the Mac Keychain. All subsequent uses of that certificate will use the stored private key and ignore anything passed in programmatically. Beginning in v1.7.3, when a stored private key from the Keychain is used, the following will be logged at the "info" log level:
121104

122105
```

documents/DEVELOPING.md

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,64 @@
1-
# Developing Instructions
1+
# Development Guide
22

3-
Please first follow the instructions in the [main readme](../README.md)
3+
This guide covers building and developing with the AWS IoT Device SDK for Java v2.
44

5-
## Consuming Local IoT Device SDK from Maven in your application
6-
To build the SDK locally and test local changes do the following:
5+
**Prerequisites:** Follow the setup instructions in the [main README](../README.md) first.
76

8-
Modify [sdk/pom.xml](https://github.com/aws/aws-iot-device-sdk-java-v2/sdk/pom.xml)
9-
``` xml
7+
## Building from Source
8+
9+
### Basic Build
10+
11+
```bash
12+
# Create workspace directory
13+
mkdir sdk-workspace
14+
cd sdk-workspace
15+
16+
# Clone the repository
17+
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
18+
cd aws-iot-device-sdk-java-v2
19+
20+
# Build and install
21+
mvn clean install
22+
```
23+
24+
### Using Latest CRT Version
25+
26+
To use the latest AWS CRT release instead of the tested version:
27+
28+
```bash
29+
# Update CRT version before building
30+
mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*"
31+
mvn clean install
32+
```
33+
34+
## Using Local IoT SDK in Your Application
35+
36+
### Maven Dependency Configuration
37+
38+
To test local changes, update your application's `pom.xml`:
39+
40+
```xml
1041
<dependency>
1142
<groupId>software.amazon.awssdk.iotdevicesdk</groupId>
1243
<artifactId>aws-iot-device-sdk</artifactId>
1344
<version>1.0.0-SNAPSHOT</version>
1445
</dependency>
1546
```
16-
Note the version number matches the sdk version number in [aws-crt-java](https://github.com/awslabs/aws-crt-java/pom.xml)
17-
under
18-
```xml
19-
<version>1.0.0-SNAPSHOT</version>
20-
```
2147

22-
Please note: The default location for local builds with maven is
23-
Linux: /home/<User_Name>/.m2
24-
Windows: C:\Users\<User\_Name>\.m2
25-
Mac: /Users/<user_name>/.m2
48+
**Note:** Ensure the version matches the SDK version in [aws-crt-java pom.xml](https://github.com/awslabs/aws-crt-java/blob/main/pom.xml).
49+
50+
### Maven Local Repository
2651

27-
It is safe to delete the whole directory
28-
It is possible to pass this directory as an argument to the maven command
52+
**Default locations:**
53+
- **Linux:** `/home/<username>/.m2`
54+
- **Windows:** `C:\Users\<username>\.m2`
55+
- **macOS:** `/Users/<username>/.m2`
56+
57+
**Custom repository location:**
2958
```bash
30-
mvn -Dmaven.repo.local=/my/local/repository/path clean install
59+
mvn -Dmaven.repo.local=/path/to/custom/repo clean install
3160
```
32-
It is also possible to change it globally by modifying setting.xml in the maven
33-
configuration files
3461

35-
After that making your changes, follow the guide in the [main page](../README.md)
62+
**Global configuration:** Modify `settings.xml` in Maven configuration directory.
63+
64+
**Cleanup:** The `.m2` directory can be safely deleted to clear local builds.

0 commit comments

Comments
 (0)