or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

index.md

index.mddocs/

0

# AWS Java SDK BOM

1

2

The AWS Java SDK BOM (Bill of Materials) provides centralized dependency management for all AWS SDK for Java service clients and components, enabling consistent versioning across 379 AWS service modules without requiring explicit version declarations for each dependency.

3

4

## Overview

5

6

The AWS Java SDK BOM is a Maven dependency management artifact that simplifies version control for the comprehensive AWS SDK for Java ecosystem. This BOM manages 379 individual AWS service client libraries, ensuring version compatibility and eliminating dependency conflicts across the entire AWS service catalog. It serves as the single source of truth for version alignment in enterprise applications using multiple AWS services, from core infrastructure services like S3 and EC2 to specialized services like machine learning, IoT, and analytics platforms.

7

8

**Key Features:**

9

- **Centralized Version Management**: Single BOM import manages all 379 AWS service client versions

10

- **Conflict Prevention**: Eliminates version mismatches between AWS SDK components

11

- **Simplified Dependency Declarations**: No version numbers required for individual AWS service dependencies

12

- **Complete AWS Coverage**: Includes all available AWS services in Java SDK v1.x

13

- **Enterprise Ready**: Designed for large-scale applications using multiple AWS services

14

15

## Package Information

16

17

- **Package Name**: aws-java-sdk-bom

18

- **Group ID**: com.amazonaws

19

- **Package Type**: Maven BOM (Bill of Materials)

20

- **Language**: Java (Dependency Management)

21

- **Version**: 1.12.789

22

- **Installation**: Import via Maven `<dependencyManagement>`

23

24

## Core Integration

25

26

### Maven BOM Import

27

28

```xml { .api }

29

<dependencyManagement>

30

<dependencies>

31

<dependency>

32

<groupId>com.amazonaws</groupId>

33

<artifactId>aws-java-sdk-bom</artifactId>

34

<version>1.12.789</version>

35

<type>pom</type>

36

<scope>import</scope>

37

</dependency>

38

</dependencies>

39

</dependencyManagement>

40

```

41

42

### Service Dependencies Declaration

43

44

After importing the BOM, declare AWS SDK service dependencies without versions:

45

46

```xml { .api }

47

<dependencies>

48

<dependency>

49

<groupId>com.amazonaws</groupId>

50

<artifactId>aws-java-sdk-s3</artifactId>

51

<!-- Version managed by BOM -->

52

</dependency>

53

<dependency>

54

<groupId>com.amazonaws</groupId>

55

<artifactId>aws-java-sdk-ec2</artifactId>

56

<!-- Version managed by BOM -->

57

</dependency>

58

<dependency>

59

<groupId>com.amazonaws</groupId>

60

<artifactId>aws-java-sdk-dynamodb</artifactId>

61

<!-- Version managed by BOM -->

62

</dependency>

63

</dependencies>

64

```

65

66

## Basic Usage

67

68

### Complete Maven Configuration Example

69

70

```xml

71

<?xml version="1.0" encoding="UTF-8"?>

72

<project xmlns="http://maven.apache.org/POM/4.0.0">

73

<modelVersion>4.0.0</modelVersion>

74

75

<groupId>com.example</groupId>

76

<artifactId>my-aws-app</artifactId>

77

<version>1.0.0</version>

78

79

<properties>

80

<java.version>1.8</java.version>

81

</properties>

82

83

<!-- Import AWS SDK BOM for version management -->

84

<dependencyManagement>

85

<dependencies>

86

<dependency>

87

<groupId>com.amazonaws</groupId>

88

<artifactId>aws-java-sdk-bom</artifactId>

89

<version>1.12.789</version>

90

<type>pom</type>

91

<scope>import</scope>

92

</dependency>

93

</dependencies>

94

</dependencyManagement>

95

96

<!-- Declare specific AWS services needed -->

97

<dependencies>

98

<dependency>

99

<groupId>com.amazonaws</groupId>

100

<artifactId>aws-java-sdk-s3</artifactId>

101

</dependency>

102

<dependency>

103

<groupId>com.amazonaws</groupId>

104

<artifactId>aws-java-sdk-dynamodb</artifactId>

105

</dependency>

106

</dependencies>

107

</project>

108

```

109

110

## Architecture

111

112

The AWS Java SDK BOM leverages Maven's dependency management capabilities to provide a sophisticated versioning strategy for the extensive AWS SDK ecosystem:

113

114

### Dependency Management Strategy

115

1. **Version Alignment**: All 379 AWS SDK modules use a single version variable `${awsjavasdk.version}` (1.12.789)

116

2. **Conflict Resolution**: Prevents version conflicts between AWS SDK components and their transitive dependencies

117

3. **Transitive Management**: Manages versions of shared dependencies like Jackson, Apache HTTP Client, and other common libraries

118

4. **No Runtime Impact**: BOM itself adds no runtime dependencies or classes to your application

119

120

### BOM Scope and Coverage

121

- **Core Infrastructure**: Essential AWS SDK components (core, models, SWF libraries)

122

- **Service Clients**: Complete coverage of all 379 AWS service-specific client libraries

123

- **Version Synchronization**: Ensures compatibility testing across the entire AWS service catalog

124

- **Dependency Inheritance**: Child projects automatically inherit managed versions without explicit declarations

125

126

### Integration Patterns

127

The BOM follows Maven's standard `import` scope pattern, allowing developers to:

128

- Import once in `<dependencyManagement>` section

129

- Declare service-specific dependencies without version numbers

130

- Override BOM-managed versions when necessary (though not recommended)

131

- Combine with other BOMs while maintaining AWS SDK version consistency

132

133

## Capabilities

134

135

### Core SDK Components

136

137

Essential infrastructure components managed by the BOM:

138

139

```xml { .api }

140

<!-- Core SDK functionality -->

141

<dependency>

142

<groupId>com.amazonaws</groupId>

143

<artifactId>aws-java-sdk-core</artifactId>

144

</dependency>

145

146

<!-- Data models for all services -->

147

<dependency>

148

<groupId>com.amazonaws</groupId>

149

<artifactId>aws-java-sdk-models</artifactId>

150

</dependency>

151

152

<!-- Simple Workflow libraries -->

153

<dependency>

154

<groupId>com.amazonaws</groupId>

155

<artifactId>aws-java-sdk-swf-libraries</artifactId>

156

</dependency>

157

```

158

159

### Compute Services

160

161

EC2, Lambda, containers, and compute platforms:

162

163

```xml { .api }

164

<!-- Elastic Compute Cloud -->

165

<dependency>

166

<groupId>com.amazonaws</groupId>

167

<artifactId>aws-java-sdk-ec2</artifactId>

168

</dependency>

169

170

<!-- AWS Lambda -->

171

<dependency>

172

<groupId>com.amazonaws</groupId>

173

<artifactId>aws-java-sdk-lambda</artifactId>

174

</dependency>

175

176

<!-- Elastic Container Service -->

177

<dependency>

178

<groupId>com.amazonaws</groupId>

179

<artifactId>aws-java-sdk-ecs</artifactId>

180

</dependency>

181

182

<!-- Elastic Kubernetes Service -->

183

<dependency>

184

<groupId>com.amazonaws</groupId>

185

<artifactId>aws-java-sdk-eks</artifactId>

186

</dependency>

187

188

<!-- AWS Batch -->

189

<dependency>

190

<groupId>com.amazonaws</groupId>

191

<artifactId>aws-java-sdk-batch</artifactId>

192

</dependency>

193

```

194

195

### Storage Services

196

197

S3, EFS, and other storage solutions:

198

199

```xml { .api }

200

<!-- Simple Storage Service -->

201

<dependency>

202

<groupId>com.amazonaws</groupId>

203

<artifactId>aws-java-sdk-s3</artifactId>

204

</dependency>

205

206

<!-- S3 Control -->

207

<dependency>

208

<groupId>com.amazonaws</groupId>

209

<artifactId>aws-java-sdk-s3control</artifactId>

210

</dependency>

211

212

<!-- Elastic File System -->

213

<dependency>

214

<groupId>com.amazonaws</groupId>

215

<artifactId>aws-java-sdk-efs</artifactId>

216

</dependency>

217

218

<!-- FSx -->

219

<dependency>

220

<groupId>com.amazonaws</groupId>

221

<artifactId>aws-java-sdk-fsx</artifactId>

222

</dependency>

223

224

<!-- Glacier -->

225

<dependency>

226

<groupId>com.amazonaws</groupId>

227

<artifactId>aws-java-sdk-glacier</artifactId>

228

</dependency>

229

```

230

231

### Database Services

232

233

DynamoDB, RDS, and specialized databases:

234

235

```xml { .api }

236

<!-- DynamoDB -->

237

<dependency>

238

<groupId>com.amazonaws</groupId>

239

<artifactId>aws-java-sdk-dynamodb</artifactId>

240

</dependency>

241

242

<!-- Relational Database Service -->

243

<dependency>

244

<groupId>com.amazonaws</groupId>

245

<artifactId>aws-java-sdk-rds</artifactId>

246

</dependency>

247

248

<!-- Amazon Neptune -->

249

<dependency>

250

<groupId>com.amazonaws</groupId>

251

<artifactId>aws-java-sdk-neptune</artifactId>

252

</dependency>

253

254

<!-- DocumentDB -->

255

<dependency>

256

<groupId>com.amazonaws</groupId>

257

<artifactId>aws-java-sdk-docdb</artifactId>

258

</dependency>

259

260

<!-- Timestream -->

261

<dependency>

262

<groupId>com.amazonaws</groupId>

263

<artifactId>aws-java-sdk-timestreamwrite</artifactId>

264

</dependency>

265

```

266

267

### Security & Identity Services

268

269

IAM, KMS, and security management:

270

271

```xml { .api }

272

<!-- Identity and Access Management -->

273

<dependency>

274

<groupId>com.amazonaws</groupId>

275

<artifactId>aws-java-sdk-iam</artifactId>

276

</dependency>

277

278

<!-- Key Management Service -->

279

<dependency>

280

<groupId>com.amazonaws</groupId>

281

<artifactId>aws-java-sdk-kms</artifactId>

282

</dependency>

283

284

<!-- Security Token Service -->

285

<dependency>

286

<groupId>com.amazonaws</groupId>

287

<artifactId>aws-java-sdk-sts</artifactId>

288

</dependency>

289

290

<!-- Secrets Manager -->

291

<dependency>

292

<groupId>com.amazonaws</groupId>

293

<artifactId>aws-java-sdk-secretsmanager</artifactId>

294

</dependency>

295

```

296

297

### Messaging & Queuing Services

298

299

SQS, SNS, and event-driven architectures:

300

301

```xml { .api }

302

<!-- Simple Queue Service -->

303

<dependency>

304

<groupId>com.amazonaws</groupId>

305

<artifactId>aws-java-sdk-sqs</artifactId>

306

</dependency>

307

308

<!-- Simple Notification Service -->

309

<dependency>

310

<groupId>com.amazonaws</groupId>

311

<artifactId>aws-java-sdk-sns</artifactId>

312

</dependency>

313

314

<!-- Amazon EventBridge -->

315

<dependency>

316

<groupId>com.amazonaws</groupId>

317

<artifactId>aws-java-sdk-eventbridge</artifactId>

318

</dependency>

319

320

<!-- Kinesis -->

321

<dependency>

322

<groupId>com.amazonaws</groupId>

323

<artifactId>aws-java-sdk-kinesis</artifactId>

324

</dependency>

325

```

326

327

### Machine Learning Services

328

329

SageMaker, Rekognition, and AI/ML platforms:

330

331

```xml { .api }

332

<!-- Amazon SageMaker -->

333

<dependency>

334

<groupId>com.amazonaws</groupId>

335

<artifactId>aws-java-sdk-sagemaker</artifactId>

336

</dependency>

337

338

<!-- Amazon Rekognition -->

339

<dependency>

340

<groupId>com.amazonaws</groupId>

341

<artifactId>aws-java-sdk-rekognition</artifactId>

342

</dependency>

343

344

<!-- Amazon Comprehend -->

345

<dependency>

346

<groupId>com.amazonaws</groupId>

347

<artifactId>aws-java-sdk-comprehend</artifactId>

348

</dependency>

349

350

<!-- Amazon Bedrock -->

351

<dependency>

352

<groupId>com.amazonaws</groupId>

353

<artifactId>aws-java-sdk-bedrock</artifactId>

354

</dependency>

355

```

356

357

## Managed Dependencies

358

359

### Complete Service Coverage

360

361

The BOM manages versions for **379 AWS service modules**, including:

362

363

- **Compute**: EC2, Lambda, ECS, EKS, Batch, Lightsail, App Runner

364

- **Storage**: S3, EFS, FSx, Glacier, Storage Gateway, S3 Outposts

365

- **Database**: RDS, DynamoDB, DocumentDB, Neptune, Timestream, MemoryDB, Keyspaces

366

- **Networking**: CloudFront, Route53, Direct Connect, VPC Lattice, Network Firewall

367

- **Security**: IAM, KMS, Secrets Manager, WAF, Shield, GuardDuty, Security Hub

368

- **Analytics**: Athena, EMR, Kinesis, QuickSight, Glue, Lake Formation

369

- **Machine Learning**: SageMaker, Rekognition, Comprehend, Polly, Textract, Bedrock

370

- **IoT**: IoT Core, IoT Analytics, IoT Events, IoT Device Management, IoT Fleet Hub

371

- **Developer Tools**: CodeCommit, CodeBuild, CodeDeploy, CodePipeline, CodeArtifact

372

- **Management**: CloudFormation, CloudTrail, CloudWatch, Config, Systems Manager

373

- **Application Integration**: EventBridge, SQS, SNS, Step Functions, API Gateway

374

375

### Version Management Strategy

376

377

```xml { .api }

378

<!-- All dependencies use consistent versioning -->

379

<dependency>

380

<artifactId>aws-java-sdk-[service]</artifactId>

381

<groupId>com.amazonaws</groupId>

382

<version>${awsjavasdk.version}</version>

383

<optional>false</optional>

384

</dependency>

385

```

386

387

The `${awsjavasdk.version}` variable ensures all 379 modules use version `1.12.789`, providing:

388

389

- **Compatibility Guarantee**: All components tested together

390

- **Conflict Prevention**: No version mismatches between AWS SDK modules

391

- **Simplified Maintenance**: Single version upgrade point

392

- **Transitive Alignment**: Consistent dependency resolution

393

394

## Special Considerations

395

396

### BOM Limitations

397

398

As a dependency management tool, the BOM:

399

400

- **No Runtime Code**: Contains no executable classes or interfaces

401

- **Maven Specific**: Designed for Maven dependency management

402

- **Version Locked**: All managed dependencies use the same version

403

- **Import Required**: Must be imported via `<dependencyManagement>` scope

404

405

### Migration Notice

406

407

**Important**: AWS SDK for Java 1.x is in maintenance mode as of July 31, 2024, and will reach end-of-support on December 31, 2025. AWS recommends migrating to [AWS SDK for Java 2.x](https://sdk.amazonaws.com/java/api/latest/) for continued support and new features.

408

409

### Java Version Requirements

410

411

- **Minimum Java Version**: Java 1.8+

412

- **Recommended**: Java 11 or later for optimal performance

413

- **Compatibility**: Tested on OpenJDK and Oracle JDK

414

415

## Error Handling

416

417

### Common BOM Issues

418

419

**Version Conflicts**: If you experience version conflicts, ensure the BOM is imported in `<dependencyManagement>` before other BOMs:

420

421

```xml

422

<dependencyManagement>

423

<dependencies>

424

<!-- AWS BOM should be first -->

425

<dependency>

426

<groupId>com.amazonaws</groupId>

427

<artifactId>aws-java-sdk-bom</artifactId>

428

<version>1.12.789</version>

429

<type>pom</type>

430

<scope>import</scope>

431

</dependency>

432

<!-- Other BOMs after -->

433

</dependencies>

434

</dependencyManagement>

435

```

436

437

**Missing Service**: If a service client is not available, verify the artifactId matches the managed dependency list. All 379 service modules use the pattern `aws-java-sdk-[service-name]`.