Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Provides AWS SDK for Java 2.x client configuration, credential resolution, HTTP client tuning, timeout, retry, and testing patterns. Use when creating or hardening AWS service clients, wiring Spring Boot beans, debugging auth or region issues, or choosing sync vs async SDK usage.
.claude/skills/giuseppe-trisciuoglio-aws-sdk-java-v2-core/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 26% | 0% |
| case-14 | ✓→✗ | ▼ Worse | 28% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 45% | 0% |
Use this skill to set up AWS SDK for Java 2.x clients with production-safe defaults.
It focuses on the decisions that matter most:
Keep SKILL.md focused on setup and delivery flow. Use the references/ files for deeper API details and expanded examples.
S3Client, DynamoDbClient) and async (S3AsyncClient, SqsAsyncClient) clientsS3Client, DynamoDbClient) for request/response flowsS3AsyncClient, SqsAsyncClient) for concurrency, streaming, or backpressureUse DefaultCredentialsProvider with environment-aware defaults:
Override only for multi-account access, test isolation, or profile switching.
Verify: Call StsClient.getCallerIdentity() at startup to confirm credentials resolve.
Set production values explicitly:
Use ApacheHttpClient for sync and NettyNioAsyncHttpClient for async.
Verify: Confirm timeouts and retry behavior under failure conditions.
In Spring Boot:
@Bean singletonsVerify: Check clients are not created inside hot execution paths.
Close custom HTTP clients and SDK clients during shutdown if lifecycle is not managed automatically.
At the boundary layer:
SdkException or service-specific exceptions@PostConstruct in Spring Boot configuration to fail fast on startup if credentials are missingjavaStsClient stsClient = StsClient.builder().build(); GetCallerIdentityResponse identity = stsClient.getCallerIdentity(); // Logs: Successfully authenticated as: {identity.arn()}
java@Configuration public class AwsClientConfiguration { @Bean S3Client s3Client() { return S3Client.builder() .region(Region.of("eu-south-2")) .credentialsProvider(DefaultCredentialsProvider.create()) .httpClientBuilder(ApacheHttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(3))) .overrideConfiguration(ClientOverrideConfiguration.builder() .apiCallAttemptTimeout(Duration.ofSeconds(10)) .apiCallTimeout(Duration.ofSeconds(30)) .build()) .build(); } }
javaSqsAsyncClient sqsAsyncClient = SqsAsyncClient.builder() .region(Region.US_EAST_1) .credentialsProvider(DefaultCredentialsProvider.create()) .httpClientBuilder(NettyNioAsyncHttpClient.builder() .maxConcurrency(200) .connectionTimeout(Duration.ofSeconds(3)) .readTimeout(Duration.ofSeconds(20))) .overrideConfiguration(ClientOverrideConfiguration.builder() .apiCallTimeout(Duration.ofSeconds(30)) .build()) .build();
DefaultCredentialsProvider unless a project requirement says otherwise.references/api-reference.mdreferences/best-practices.mdreferences/developer-guide.mdaws-sdk-java-v2-secrets-manageraws-sdk-java-v2-s3aws-sdk-java-v2-dynamodbaws-sdk-java-v2-bedrock| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 16,881 | 13,954 | -17% | 1 | 1 | 0% | 3,009 | 4,148 | +38% | 0 | 0 | — |
case-06 | pass→pass | 12,087 | 9,652 | -20% | 1 | 1 | 0% | 2,132 | 3,096 | +45% | 0 | 0 | — |
case-02 | pass→pass | 11,520 | 10,264 | -11% | 1 | 1 | 0% | 1,903 | 3,022 | +59% | 0 | 0 | — |
case-03 | pass→pass | 17,231 | 7,634 | -56% | 1 | 1 | 0% | 2,873 | 2,597 | -10% | 0 | 0 | — |
case-04 | pass→pass | 11,086 | 8,610 | -22% | 1 | 1 | 0% | 1,814 | 2,944 | +62% | 0 | 0 | — |
case-05 | pass→pass | 15,539 | 22,333 | +44% | 1 | 1 | 0% | 2,625 | 2,947 | +12% | 0 | 0 | — |
case-07 | pass→pass | 16,568 | 13,586 | -18% | 1 | 1 | 0% | 3,050 | 3,865 | +27% | 0 | 0 | — |
case-08 | pass→pass | 16,107 | 11,807 | -27% | 1 | 1 | 0% | 2,629 | 3,454 | +31% | 0 | 0 | — |
case-09 | pass→fail | 15,894 | 12,589 | -21% | 1 | 1 | 0% | 3,009 | 3,801 | +26% | 0 | 0 | — |
case-10 | pass→pass | 8,453 | 8,709 | +3% | 1 | 1 | 0% | 1,526 | 2,826 | +85% | 0 | 0 | — |
case-11 | fail→pass | 15,527 | 7,383 | -52% | 1 | 1 | 0% | 2,471 | 2,511 | +2% | 0 | 0 | — |
case-12 | pass→pass | 7,221 | 4,910 | -32% | 1 | 1 | 0% | 1,412 | 2,161 | +53% | 0 | 0 | — |
case-13 | pass→pass | 16,139 | 11,582 | -28% | 1 | 1 | 0% | 2,968 | 3,467 | +17% | 0 | 0 | — |
case-14 | pass→fail | 16,860 | 13,782 | -18% | 1 | 1 | 0% | 2,937 | 3,773 | +28% | 0 | 0 | — |
case-15 | pass→pass | 13,152 | 8,274 | -37% | 1 | 1 | 0% | 1,901 | 2,779 | +46% | 0 | 0 | — |
case-16 | pass→pass | 14,441 | 10,101 | -30% | 1 | 1 | 0% | 2,478 | 2,996 | +21% | 0 | 0 | — |
case-17 | pass→pass | 14,167 | 9,866 | -30% | 1 | 1 | 0% | 2,255 | 2,826 | +25% | 0 | 0 | — |
case-18 | pass→pass | 13,154 | 9,116 | -31% | 1 | 1 | 0% | 2,212 | 2,850 | +29% | 0 | 0 | — |
case-19 | pass→pass | 31,675 | 12,305 | -61% | 1 | 1 | 0% | 2,673 | 3,970 | +49% | 0 | 0 | — |
case-20 | pass→pass | 40,935 | 16,125 | -61% | 1 | 1 | 0% | 4,406 | 4,630 | +5% | 0 | 0 | — |
case-21 | pass→pass | 7,812 | 6,583 | -16% | 1 | 1 | 0% | 1,638 | 2,481 | +51% | 0 | 0 | — |
case-22 | pass→pass | 10,358 | 7,593 | -27% | 1 | 1 | 0% | 1,646 | 2,904 | +76% | 0 | 0 | — |
case-23 | pass→pass | 15,310 | 15,433 | +1% | 1 | 1 | 0% | 2,951 | 4,327 | +47% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of 0 percentage points is the difference between those two pass rates over the 23 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.