This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch objectHelper in repository https://gitbox.apache.org/repos/asf/camel.git
commit dcac5ee5ce840d3afbdad66c42b4e79481fe7bdd Author: Andrea Cosentino <[email protected]> AuthorDate: Wed Jan 28 10:11:32 2026 +0100 Camel-AWS components: Use ObjectHelper for null checks - DynamoDB Signed-off-by: Andrea Cosentino <[email protected]> --- .../apache/camel/component/aws2/ddb/AbstractDdbCommand.java | 11 ++++++----- .../org/apache/camel/component/aws2/ddb/Ddb2Component.java | 3 ++- .../org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java | 6 +++--- .../org/apache/camel/component/aws2/ddb/Ddb2Producer.java | 7 ++++--- .../org/apache/camel/component/aws2/ddb/QueryCommand.java | 5 +++-- .../java/org/apache/camel/component/aws2/ddb/ScanCommand.java | 3 ++- .../apache/camel/component/aws2/ddb/UpdateTableCommand.java | 5 +++-- .../aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java | 7 ++++--- .../camel/component/aws2/ddbstream/Ddb2StreamComponent.java | 3 ++- .../camel/component/aws2/ddbstream/Ddb2StreamConsumer.java | 3 ++- .../camel/component/aws2/ddbstream/Ddb2StreamEndpoint.java | 6 +++--- .../org/apache/camel/component/aws2/ddbstream/ShardList.java | 5 +++-- 12 files changed, 37 insertions(+), 27 deletions(-) diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/AbstractDdbCommand.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/AbstractDdbCommand.java index b21b64b138af..354ab4f96120 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/AbstractDdbCommand.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/AbstractDdbCommand.java @@ -21,6 +21,7 @@ import java.util.Map; import org.apache.camel.Exchange; import org.apache.camel.Message; +import org.apache.camel.util.ObjectHelper; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.ExpectedAttributeValue; @@ -45,7 +46,7 @@ public abstract class AbstractDdbCommand { protected String determineTableName() { String tableName = exchange.getIn().getHeader(Ddb2Constants.TABLE_NAME, String.class); - return tableName != null ? tableName : configuration.getTableName(); + return ObjectHelper.isNotEmpty(tableName) ? tableName : configuration.getTableName(); } @SuppressWarnings("unchecked") @@ -139,7 +140,7 @@ public abstract class AbstractDdbCommand { */ protected boolean hasFilterExpression() { String filterExpression = exchange.getIn().getHeader(Ddb2Constants.FILTER_EXPRESSION, String.class); - return filterExpression != null && !filterExpression.isEmpty(); + return ObjectHelper.isNotEmpty(filterExpression); } /** @@ -147,7 +148,7 @@ public abstract class AbstractDdbCommand { */ protected boolean hasFilterExpressionAttributeNames() { Map<?, ?> names = exchange.getIn().getHeader(Ddb2Constants.FILTER_EXPRESSION_ATTRIBUTE_NAMES, Map.class); - return names != null && !names.isEmpty(); + return ObjectHelper.isNotEmpty(names); } /** @@ -155,7 +156,7 @@ public abstract class AbstractDdbCommand { */ protected boolean hasFilterExpressionAttributeValues() { Map<?, ?> values = exchange.getIn().getHeader(Ddb2Constants.FILTER_EXPRESSION_ATTRIBUTE_VALUES, Map.class); - return values != null && !values.isEmpty(); + return ObjectHelper.isNotEmpty(values); } /** @@ -163,6 +164,6 @@ public abstract class AbstractDdbCommand { */ protected boolean hasProjectExpression() { String projectExpression = exchange.getIn().getHeader(Ddb2Constants.PROJECT_EXPRESSION, String.class); - return projectExpression != null && !projectExpression.isEmpty(); + return ObjectHelper.isNotEmpty(projectExpression); } } diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java index e992d0a5f123..a4905953b702 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java @@ -23,6 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.HealthCheckComponent; +import org.apache.camel.util.ObjectHelper; @Component("aws2-ddb") public class Ddb2Component extends HealthCheckComponent { @@ -44,7 +45,7 @@ public class Ddb2Component extends HealthCheckComponent { if (remaining == null || remaining.isBlank()) { throw new IllegalArgumentException("Table name must be specified."); } - Ddb2Configuration configuration = this.configuration != null ? this.configuration.copy() : new Ddb2Configuration(); + Ddb2Configuration configuration = ObjectHelper.isNotEmpty(this.configuration) ? this.configuration.copy() : new Ddb2Configuration(); configuration.setTableName(remaining); Ddb2Endpoint endpoint = new Ddb2Endpoint(uri, this, configuration); setProperties(endpoint, parameters); diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java index e7babc7a82e7..33451093f7d5 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java @@ -87,7 +87,7 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint implements EndpointServi public void doStart() throws Exception { super.doStart(); - ddbClient = configuration.getAmazonDDBClient() != null + ddbClient = ObjectHelper.isNotEmpty(configuration.getAmazonDDBClient()) ? configuration.getAmazonDDBClient() : Ddb2ClientFactory.getDynamoDBClient(configuration); String tableName = getConfiguration().getTableName(); @@ -119,7 +119,7 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint implements EndpointServi @Override public void doStop() throws Exception { if (ObjectHelper.isEmpty(configuration.getAmazonDDBClient())) { - if (ddbClient != null) { + if (ObjectHelper.isNotEmpty(ddbClient)) { ddbClient.close(); } } @@ -202,7 +202,7 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint implements EndpointServi @Override public Map<String, String> getServiceMetadata() { - if (configuration.getTableName() != null) { + if (ObjectHelper.isNotEmpty(configuration.getTableName())) { return Map.of("table", configuration.getTableName()); } return null; diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Producer.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Producer.java index 2bf318366244..5687c575b127 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Producer.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Producer.java @@ -22,6 +22,7 @@ import org.apache.camel.health.HealthCheck; import org.apache.camel.health.HealthCheckHelper; import org.apache.camel.health.WritableHealthCheckRepository; import org.apache.camel.support.DefaultProducer; +import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.URISupport; /** @@ -78,7 +79,7 @@ public class Ddb2Producer extends DefaultProducer { private Ddb2Operations determineOperation(Exchange exchange) { Ddb2Operations operation = exchange.getIn().getHeader(Ddb2Constants.OPERATION, Ddb2Operations.class); - return operation != null ? operation : getConfiguration().getOperation(); + return ObjectHelper.isNotEmpty(operation) ? operation : getConfiguration().getOperation(); } protected Ddb2Configuration getConfiguration() { @@ -106,7 +107,7 @@ public class Ddb2Producer extends DefaultProducer { "producers", WritableHealthCheckRepository.class); - if (healthCheckRepository != null) { + if (ObjectHelper.isNotEmpty(healthCheckRepository)) { String id = getEndpoint().getId(); producerHealthCheck = new Db2ProducerHealthCheck(getEndpoint(), id); producerHealthCheck.setEnabled(getEndpoint().getComponent().isHealthCheckProducerEnabled()); @@ -116,7 +117,7 @@ public class Ddb2Producer extends DefaultProducer { @Override protected void doStop() throws Exception { - if (healthCheckRepository != null && producerHealthCheck != null) { + if (ObjectHelper.isNotEmpty(healthCheckRepository) && ObjectHelper.isNotEmpty(producerHealthCheck)) { healthCheckRepository.removeHealthCheck(producerHealthCheck); producerHealthCheck = null; } diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/QueryCommand.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/QueryCommand.java index b4b45e476704..2e70d084b3f2 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/QueryCommand.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/QueryCommand.java @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.Map; import org.apache.camel.Exchange; +import org.apache.camel.util.ObjectHelper; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.Condition; import software.amazon.awssdk.services.dynamodb.model.QueryRequest; @@ -44,13 +45,13 @@ public class QueryCommand extends AbstractDdbCommand { // Check if we have set an Index Name String indexName = determineIndexName(); - if (indexName != null) { + if (ObjectHelper.isNotEmpty(indexName)) { query.indexName(indexName); } // Skip adding attribute-to-get from 'CamelAwsDdbAttributeNames' if the header is null or empty list. Collection<String> attributeNames = determineAttributeNames(); - if (attributeNames != null && !attributeNames.isEmpty()) { + if (ObjectHelper.isNotEmpty(attributeNames)) { query.attributesToGet(attributeNames); } diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/ScanCommand.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/ScanCommand.java index 2242e299ec6f..255a97d9a988 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/ScanCommand.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/ScanCommand.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.Map; import org.apache.camel.Exchange; +import org.apache.camel.util.ObjectHelper; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.Condition; import software.amazon.awssdk.services.dynamodb.model.ScanRequest; @@ -42,7 +43,7 @@ public class ScanCommand extends AbstractDdbCommand { // Check if we have set an Index Name String indexName = determineIndexName(); - if (indexName != null) { + if (ObjectHelper.isNotEmpty(indexName)) { scan.indexName(indexName); } diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/UpdateTableCommand.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/UpdateTableCommand.java index 49c8b780bdb0..1ad3508dd83f 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/UpdateTableCommand.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/UpdateTableCommand.java @@ -17,6 +17,7 @@ package org.apache.camel.component.aws2.ddb; import org.apache.camel.Exchange; +import org.apache.camel.util.ObjectHelper; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.ProvisionedThroughput; import software.amazon.awssdk.services.dynamodb.model.UpdateTableRequest; @@ -37,11 +38,11 @@ public class UpdateTableCommand extends AbstractDdbCommand { private Long determineReadCapacity() { Long readCapacity = exchange.getIn().getHeader(Ddb2Constants.READ_CAPACITY, Long.class); - return readCapacity != null ? readCapacity : configuration.getReadCapacity(); + return ObjectHelper.isNotEmpty(readCapacity) ? readCapacity : configuration.getReadCapacity(); } private Long determineWriteCapacity() { Long writeCapacity = exchange.getIn().getHeader(Ddb2Constants.WRITE_CAPACITY, Long.class); - return writeCapacity != null ? writeCapacity : configuration.getWriteCapacity(); + return ObjectHelper.isNotEmpty(writeCapacity) ? writeCapacity : configuration.getWriteCapacity(); } } diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java index 64285bcdc43e..edfb6f08250b 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java @@ -36,6 +36,7 @@ import org.apache.camel.component.jackson.transform.Json; import org.apache.camel.spi.DataType; import org.apache.camel.spi.DataTypeTransformer; import org.apache.camel.spi.Transformer; +import org.apache.camel.util.ObjectHelper; import software.amazon.awssdk.services.dynamodb.model.AttributeAction; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.AttributeValueUpdate; @@ -95,7 +96,7 @@ public class Ddb2JsonDataTypeTransformer extends Transformer { String operation = Optional.ofNullable(jsonBody.get("operation")).map(JsonNode::asText).orElse(Ddb2Operations.PutItem.name()); - if (message.getExchange().hasProperties() && message.getExchange().getProperty("operation", String.class) != null) { + if (message.getExchange().hasProperties() && ObjectHelper.isNotEmpty(message.getExchange().getProperty("operation", String.class))) { operation = message.getExchange().getProperty("operation", String.class); } @@ -107,7 +108,7 @@ public class Ddb2JsonDataTypeTransformer extends Transformer { JsonNode item = jsonBody.get("item"); Map<String, Object> keyProps; - if (key != null) { + if (ObjectHelper.isNotEmpty(key)) { keyProps = dataFormat.getObjectMapper().convertValue(key, new TypeReference<>() { }); } else { @@ -116,7 +117,7 @@ public class Ddb2JsonDataTypeTransformer extends Transformer { } Map<String, Object> itemProps; - if (item != null) { + if (ObjectHelper.isNotEmpty(item)) { itemProps = dataFormat.getObjectMapper().convertValue(item, new TypeReference<>() { }); } else { diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponent.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponent.java index 83834994981d..820aaed4f96b 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponent.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponent.java @@ -23,6 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.HealthCheckComponent; +import org.apache.camel.util.ObjectHelper; @Component("aws2-ddbstream") public class Ddb2StreamComponent extends HealthCheckComponent { @@ -43,7 +44,7 @@ public class Ddb2StreamComponent extends HealthCheckComponent { throw new IllegalArgumentException("Table name must be specified."); } Ddb2StreamConfiguration configuration - = this.configuration != null ? this.configuration.copy() : new Ddb2StreamConfiguration(); + = ObjectHelper.isNotEmpty(this.configuration) ? this.configuration.copy() : new Ddb2StreamConfiguration(); configuration.setTableName(remaining); Ddb2StreamEndpoint endpoint = new Ddb2StreamEndpoint(uri, configuration, this); setProperties(endpoint, parameters); diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamConsumer.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamConsumer.java index f4906d6a1530..9ab926d98b76 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamConsumer.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamConsumer.java @@ -29,6 +29,7 @@ import org.apache.camel.ExchangePropertyKey; import org.apache.camel.Processor; import org.apache.camel.support.ScheduledBatchPollingConsumer; import org.apache.camel.util.CastUtils; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import software.amazon.awssdk.services.dynamodb.model.ExpiredIteratorException; @@ -130,7 +131,7 @@ public class Ddb2StreamConsumer extends ScheduledBatchPollingConsumer { ex.getMessage().setHeader(Ddb2StreamConstants.EVENT_SOURCE, record.eventSource()); ex.getMessage().setHeader(Ddb2StreamConstants.EVENT_ID, record.eventID()); ex.getMessage().setHeader(Ddb2StreamConstants.EVENT_NAME, record.eventNameAsString()); - if (record.dynamodb() != null) { + if (ObjectHelper.isNotEmpty(record.dynamodb())) { ex.getMessage().setHeader(Ddb2StreamConstants.SEQUENCE_NUMBER, record.dynamodb().sequenceNumber()); ex.getMessage().setHeader(Ddb2StreamConstants.APPROXIMATE_CREATION_DATE_TIME, record.dynamodb().approximateCreationDateTime()); diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamEndpoint.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamEndpoint.java index c270c89f6f51..6c00fdda69d3 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamEndpoint.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamEndpoint.java @@ -64,7 +64,7 @@ public class Ddb2StreamEndpoint extends ScheduledPollEndpoint implements Endpoin public void doStart() throws Exception { super.doStart(); - ddbStreamClient = configuration.getAmazonDynamoDbStreamsClient() != null + ddbStreamClient = ObjectHelper.isNotEmpty(configuration.getAmazonDynamoDbStreamsClient()) ? configuration.getAmazonDynamoDbStreamsClient() : Ddb2StreamClientFactory.getDynamoDBStreamClient(configuration); } @@ -72,7 +72,7 @@ public class Ddb2StreamEndpoint extends ScheduledPollEndpoint implements Endpoin @Override public void doStop() throws Exception { if (ObjectHelper.isEmpty(configuration.getAmazonDynamoDbStreamsClient())) { - if (ddbStreamClient != null) { + if (ObjectHelper.isNotEmpty(ddbStreamClient)) { ddbStreamClient.close(); } } @@ -119,7 +119,7 @@ public class Ddb2StreamEndpoint extends ScheduledPollEndpoint implements Endpoin @Override public Map<String, String> getServiceMetadata() { - if (configuration.getTableName() != null) { + if (ObjectHelper.isNotEmpty(configuration.getTableName())) { return Map.of("table", configuration.getTableName()); } return null; diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/ShardList.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/ShardList.java index 95c388c36bf8..0c791513a8d8 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/ShardList.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/ShardList.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import software.amazon.awssdk.services.dynamodb.model.Shard; @@ -92,7 +93,7 @@ class ShardList { List<Shard> sorted = new ArrayList<>(shards.values()); Collections.sort(sorted, StartingSequenceNumberComparator.INSTANCE); for (Shard shard : sorted) { - if (shard.sequenceNumberRange().endingSequenceNumber() != null) { + if (ObjectHelper.isNotEmpty(shard.sequenceNumberRange().endingSequenceNumber())) { BigInteger end = new BigInteger(shard.sequenceNumberRange().endingSequenceNumber()); // essentially: after < end or after <= end if (condition.matches(atAfter, end)) { @@ -117,7 +118,7 @@ class ShardList { String current = removeBefore.parentShardId(); int removedShards = 0; - while (current != null) { + while (ObjectHelper.isNotEmpty(current)) { Shard s = shards.remove(current); if (s == null) { current = null;
