This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new cd32a0b  (chores) Simplifies map access/put logic (#5676)
cd32a0b is described below

commit cd32a0beac86a30699c12c4bc43096ea7efa98ad
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed Jun 16 16:10:43 2021 +0200

    (chores) Simplifies map access/put logic (#5676)
    
    Use computeIfAbsent, computeIfPresent and putIfAbsent to simplify code
    conditionally operating on Maps.
---
 .../atmosphere/websocket/WebsocketComponent.java   |  6 +--
 .../apache/camel/component/bean/MethodInfo.java    |  6 +--
 .../format/factories/DefaultFactoryRegistry.java   |  7 +--
 .../apache/camel/component/cmis/CMISProducer.java  |  9 ++--
 .../camel/http/common/DefaultHttpBinding.java      |  4 +-
 .../camel/http/common/DefaultHttpRegistry.java     |  7 +--
 .../milo/server/internal/CamelNamespace.java       |  8 +---
 .../component/olingo2/api/impl/Olingo2AppImpl.java |  5 +-
 .../component/optaplanner/OptaPlannerEndpoint.java |  7 +--
 .../camel/component/quartz/QuartzComponent.java    |  6 +--
 .../salesforce/api/dto/composite/SObjectNode.java  |  6 +--
 .../java/org/apache/camel/maven/GenerateMojo.java  |  7 +--
 .../apache/camel/language/xpath/XPathBuilder.java  |  6 +--
 .../camel/catalog/PropertiesValidationResult.java  | 53 +++++++++-------------
 14 files changed, 41 insertions(+), 96 deletions(-)

diff --git 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketComponent.java
 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketComponent.java
index 062399d..7336776 100644
--- 
a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketComponent.java
+++ 
b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketComponent.java
@@ -48,11 +48,7 @@ public class WebsocketComponent extends ServletComponent {
     WebSocketStore getWebSocketStore(String name) {
         WebSocketStore store;
         synchronized (stores) {
-            store = stores.get(name);
-            if (store == null) {
-                store = new MemoryWebSocketStore();
-                stores.put(name, store);
-            }
+            store = stores.computeIfAbsent(name, k -> new 
MemoryWebSocketStore());
         }
         return store;
     }
diff --git 
a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
 
b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index 7dc62ba..811292f 100644
--- 
a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ 
b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -214,9 +214,9 @@ public class MethodInfo {
                     for (Annotation a : method.getAnnotations()) {
                         // favour existing annotation so only add if not exists
                         Class<?> at = a.annotationType();
-                        if (!annotations.containsKey(at)) {
-                            annotations.put(at, a);
-                        }
+
+                        annotations.putIfAbsent(at, a);
+
                         aep |= at == Pattern.class || at == InOnly.class || at 
== InOut.class;
                     }
                 }
diff --git 
a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/factories/DefaultFactoryRegistry.java
 
b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/factories/DefaultFactoryRegistry.java
index 5be1904..45d4672 100644
--- 
a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/factories/DefaultFactoryRegistry.java
+++ 
b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/factories/DefaultFactoryRegistry.java
@@ -123,11 +123,6 @@ public final class DefaultFactoryRegistry implements 
FactoryRegistry {
     }
 
     private List<FormatFactoryInterface> getByClass(Class<?> clazz) {
-        List<FormatFactoryInterface> result = classBasedFactories.get(clazz);
-        if (result == null) {
-            result = new ArrayList<>();
-            classBasedFactories.put(clazz, result);
-        }
-        return result;
+        return classBasedFactories.computeIfAbsent(clazz, k -> new 
ArrayList<>());
     }
 }
diff --git 
a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java
 
b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java
index 4ae0c95..cccc3ae 100644
--- 
a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java
+++ 
b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java
@@ -520,9 +520,8 @@ public class CMISProducer extends DefaultProducer {
     }
 
     private Folder storeFolder(Folder parentFolder, Map<String, Object> 
cmisProperties) throws Exception {
-        if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
-            cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, 
CamelCMISConstants.CMIS_FOLDER);
-        }
+        cmisProperties.putIfAbsent(PropertyIds.OBJECT_TYPE_ID, 
CamelCMISConstants.CMIS_FOLDER);
+
         LOG.debug("Creating folder with properties: {}", cmisProperties);
         return parentFolder.createFolder(cmisProperties);
     }
@@ -530,9 +529,7 @@ public class CMISProducer extends DefaultProducer {
     private Document storeDocument(
             Folder parentFolder, Map<String, Object> cmisProperties, 
ContentStream contentStream, String versioning)
             throws Exception {
-        if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
-            cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, 
CamelCMISConstants.CMIS_DOCUMENT);
-        }
+        cmisProperties.putIfAbsent(PropertyIds.OBJECT_TYPE_ID, 
CamelCMISConstants.CMIS_DOCUMENT);
 
         VersioningState versioningState = VersioningState.NONE;
 
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
index bb40022..17bae00 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
@@ -140,9 +140,7 @@ public class DefaultHttpBinding implements HttpBinding {
         headers.put(Exchange.HTTP_URI, request.getRequestURI());
         headers.put(Exchange.HTTP_PATH, rawPath);
         // only set content type if not already extracted
-        if (!headers.containsKey(Exchange.CONTENT_TYPE)) {
-            headers.put(Exchange.CONTENT_TYPE, request.getContentType());
-        }
+        headers.computeIfAbsent(Exchange.CONTENT_TYPE, k -> 
request.getContentType());
 
         if (LOG.isTraceEnabled()) {
             LOG.trace("HTTP method {}", request.getMethod());
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpRegistry.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpRegistry.java
index bae3564..371691a 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpRegistry.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpRegistry.java
@@ -46,12 +46,7 @@ public class DefaultHttpRegistry implements HttpRegistry {
      * Lookup or create a new registry if none exists with the given name
      */
     public static synchronized HttpRegistry getHttpRegistry(String name) {
-        HttpRegistry answer = registries.get(name);
-        if (answer == null) {
-            answer = new DefaultHttpRegistry();
-            registries.put(name, answer);
-        }
-        return answer;
+        return registries.computeIfAbsent(name, k -> new 
DefaultHttpRegistry());
     }
 
     /**
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
index def4cc5..924f2da 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
@@ -110,12 +110,8 @@ public class CamelNamespace extends ManagedNamespace {
 
     public CamelServerItem getOrAddItem(final String itemId) {
         synchronized (this) {
-            CamelServerItem item = this.itemMap.get(itemId);
-            if (item == null) {
-                item = new CamelServerItem(itemId, getNodeContext(), 
getNamespaceIndex(), this.itemsObject);
-                this.itemMap.put(itemId, item);
-            }
-            return item;
+            return this.itemMap.computeIfAbsent(itemId,
+                    k -> new CamelServerItem(itemId, getNodeContext(), 
getNamespaceIndex(), this.itemsObject));
         }
     }
 
diff --git 
a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
 
b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
index 4af8c9d..ee5faaf 100644
--- 
a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
+++ 
b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
@@ -956,9 +956,8 @@ public final class Olingo2AppImpl implements Olingo2App {
         if (null != charset) {
             headers.put(HttpHeaders.ACCEPT_CHARSET, 
charset.name().toLowerCase());
         }
-        if (!headers.containsKey(HttpHeaders.CONTENT_TYPE)) {
-            headers.put(HttpHeaders.CONTENT_TYPE, getContentType());
-        }
+
+        headers.computeIfAbsent(HttpHeaders.CONTENT_TYPE, k -> 
getContentType());
 
         // add request headers
         headers.putAll(batchRequest.getHeaders());
diff --git 
a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
 
b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
index 9cbd487..984c457 100644
--- 
a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
+++ 
b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
@@ -57,12 +57,7 @@ public class OptaPlannerEndpoint extends DefaultEndpoint {
 
     protected Solver<Object> getOrCreateSolver(String solverId) {
         synchronized (SOLVERS) {
-            Solver<Object> solver = SOLVERS.get(solverId);
-            if (solver == null) {
-                solver = createSolver();
-                SOLVERS.put(solverId, solver);
-            }
-            return solver;
+            return SOLVERS.computeIfAbsent(solverId, k -> createSolver());
         }
     }
 
diff --git 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
index 00295d9..42a4c7a 100644
--- 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
+++ 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
@@ -475,11 +475,7 @@ public class QuartzComponent extends DefaultComponent 
implements ExtendedStartup
 
         // Set camel job counts to zero. We needed this to prevent shutdown in 
case there are multiple Camel contexts
         // that has not completed yet, and the last one with job counts to 
zero will eventually shutdown.
-        AtomicInteger number = (AtomicInteger) 
quartzContext.get(QuartzConstants.QUARTZ_CAMEL_JOBS_COUNT);
-        if (number == null) {
-            number = new AtomicInteger();
-            quartzContext.put(QuartzConstants.QUARTZ_CAMEL_JOBS_COUNT, number);
-        }
+        quartzContext.computeIfAbsent(QuartzConstants.QUARTZ_CAMEL_JOBS_COUNT, 
k -> new AtomicInteger());
     }
 
     private SchedulerContext storeCamelContextInQuartzContext() throws 
SchedulerException {
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNode.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNode.java
index 0e851d8..527e07a 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNode.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/composite/SObjectNode.java
@@ -253,11 +253,7 @@ public final class SObjectNode implements Serializable {
     }
 
     SObjectNode addChild(final String labelPlural, final SObjectNode node) {
-        List<SObjectNode> children = records.get(labelPlural);
-        if (children == null) {
-            children = new ArrayList<>();
-            records.put(labelPlural, children);
-        }
+        List<SObjectNode> children = records.computeIfAbsent(labelPlural, k -> 
new ArrayList<>());
 
         children.add(node);
 
diff --git 
a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
 
b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
index 648c6c8..bcc2113 100644
--- 
a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
+++ 
b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
@@ -286,12 +286,7 @@ public class GenerateMojo extends AbstractSalesforceMojo {
 
         public String variableName(final String given) {
             final String base = StringUtils.uncapitalize(given);
-
-            AtomicInteger counter = varNames.get(base);
-            if (counter == null) {
-                counter = new AtomicInteger();
-                varNames.put(base, counter);
-            }
+            AtomicInteger counter = varNames.computeIfAbsent(base, k -> new 
AtomicInteger());
 
             return base + counter.incrementAndGet();
         }
diff --git 
a/components/camel-xpath/src/main/java/org/apache/camel/language/xpath/XPathBuilder.java
 
b/components/camel-xpath/src/main/java/org/apache/camel/language/xpath/XPathBuilder.java
index 054926e..6bde4d2 100644
--- 
a/components/camel-xpath/src/main/java/org/apache/camel/language/xpath/XPathBuilder.java
+++ 
b/components/camel-xpath/src/main/java/org/apache/camel/language/xpath/XPathBuilder.java
@@ -989,10 +989,8 @@ public class XPathBuilder extends ServiceSupport
             }
 
             // add to map
-            if (!map.containsKey(prefix)) {
-                map.put(prefix, new HashSet<String>());
-            }
-            map.get(prefix).add(namespaces.item(i).getNodeValue());
+            map.computeIfAbsent(prefix, k -> new HashSet<>())
+                    .add(namespaces.item(i).getNodeValue());
         }
 
         LOG.info("Namespaces discovered in message: {}.", map);
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/catalog/PropertiesValidationResult.java
 
b/core/camel-api/src/main/java/org/apache/camel/catalog/PropertiesValidationResult.java
index 15ffb20..6bc9b60 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/catalog/PropertiesValidationResult.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/catalog/PropertiesValidationResult.java
@@ -133,14 +133,17 @@ abstract class PropertiesValidationResult implements 
Serializable {
         }
     }
 
+    private String computeErrors(String value) {
+        errors++;
+        return value;
+    }
+
     public void addInvalidEnum(String name, String value) {
         if (invalidEnum == null) {
             invalidEnum = new LinkedHashMap<>();
         }
-        if (!invalidEnum.containsKey(name)) {
-            invalidEnum.put(name, value);
-            errors++;
-        }
+
+        invalidEnum.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidEnumChoices(String name, String[] choices) {
@@ -161,70 +164,56 @@ abstract class PropertiesValidationResult implements 
Serializable {
         if (invalidReference == null) {
             invalidReference = new LinkedHashMap<>();
         }
-        if (!invalidReference.containsKey(name)) {
-            invalidReference.put(name, value);
-            errors++;
-        }
+
+        invalidReference.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidMap(String name, String value) {
         if (invalidMap == null) {
             invalidMap = new LinkedHashMap<>();
         }
-        if (!invalidMap.containsKey(name)) {
-            invalidMap.put(name, value);
-            errors++;
-        }
+
+        invalidMap.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidArray(String name, String value) {
         if (invalidArray == null) {
             invalidArray = new LinkedHashMap<>();
         }
-        if (!invalidArray.containsKey(name)) {
-            invalidArray.put(name, value);
-            errors++;
-        }
+
+        invalidArray.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidBoolean(String name, String value) {
         if (invalidBoolean == null) {
             invalidBoolean = new LinkedHashMap<>();
         }
-        if (!invalidBoolean.containsKey(name)) {
-            invalidBoolean.put(name, value);
-            errors++;
-        }
+
+        invalidBoolean.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidInteger(String name, String value) {
         if (invalidInteger == null) {
             invalidInteger = new LinkedHashMap<>();
         }
-        if (!invalidInteger.containsKey(name)) {
-            invalidInteger.put(name, value);
-            errors++;
-        }
+
+        invalidInteger.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidNumber(String name, String value) {
         if (invalidNumber == null) {
             invalidNumber = new LinkedHashMap<>();
         }
-        if (!invalidNumber.containsKey(name)) {
-            invalidNumber.put(name, value);
-            errors++;
-        }
+
+        invalidNumber.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addInvalidDuration(String name, String value) {
         if (invalidDuration == null) {
             invalidDuration = new LinkedHashMap<>();
         }
-        if (!invalidDuration.containsKey(name)) {
-            invalidDuration.put(name, value);
-            errors++;
-        }
+
+        invalidDuration.computeIfAbsent(name, k -> computeErrors(value));
     }
 
     public void addDefaultValue(String name, String value) {

Reply via email to