This is an automated email from the ASF dual-hosted git repository. davsclaus 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 028d717fea7 CAMEL-20384: Modernize map operations (#13081) 028d717fea7 is described below commit 028d717fea732e46726a82fdc7717ade7b46681f Author: Brice Frisco <39070938+bricefri...@users.noreply.github.com> AuthorDate: Sun Feb 11 01:26:02 2024 -0600 CAMEL-20384: Modernize map operations (#13081) --- .../camel/language/joor/CompilationUnit.java | 8 ++--- .../camel/component/olingo4/Olingo4Endpoint.java | 19 ++++++----- .../camel/component/xchange/XChangeComponent.java | 10 ++---- .../camel/impl/engine/CamelInternalProcessor.java | 4 +-- .../engine/DefaultRuntimeEndpointRegistry.java | 4 +-- .../camel/language/csimple/CSimpleLanguage.java | 38 +++++++++------------- .../injection/AnnotationDependencyInjection.java | 19 ++++++----- 7 files changed, 46 insertions(+), 56 deletions(-) diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java index 64fd9bfc56f..28a32fa1e1b 100644 --- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java +++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java @@ -37,11 +37,11 @@ public class CompilationUnit { private final Map<String, byte[]> compiled = new LinkedHashMap<>(); void addResult(String className, Class<?> clazz, byte[] byteCode) { - if (clazz != null && !classes.containsKey(className)) { - classes.put(className, clazz); + if (clazz != null) { + classes.putIfAbsent(className, clazz); } - if (byteCode != null && !compiled.containsKey(className)) { - compiled.put(className, byteCode); + if (byteCode != null) { + compiled.putIfAbsent(className, byteCode); } } diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java index 20972a7450e..cb153e7010e 100644 --- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java +++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java @@ -234,16 +234,17 @@ public class Olingo4Endpoint extends AbstractApiEndpoint<Olingo4ApiName, Olingo4 if (keyPredicate != null) { // make sure a resource path is provided - final String resourcePath = (String) properties.get(RESOURCE_PATH_PROPERTY); - if (resourcePath == null) { - throw new IllegalArgumentException( - "Resource path must be provided in endpoint URI, or URI parameter '" + RESOURCE_PATH_PROPERTY - + "', or exchange header '" - + Olingo4Constants.PROPERTY_PREFIX + RESOURCE_PATH_PROPERTY + "'"); - } + properties.compute(RESOURCE_PATH_PROPERTY, (key, resourcePath) -> { + if (resourcePath == null) { + throw new IllegalArgumentException( + "Resource path must be provided in endpoint URI, or URI parameter '" + RESOURCE_PATH_PROPERTY + + "', or exchange header '" + + Olingo4Constants.PROPERTY_PREFIX + RESOURCE_PATH_PROPERTY + "'"); + } - // append keyPredicate to dynamically create resource path - properties.put(RESOURCE_PATH_PROPERTY, resourcePath + '(' + keyPredicate + ')'); + // append keyPredicate to dynamically create resource path + return resourcePath + "(" + keyPredicate + ")"; + }); } // handle individual queryParams diff --git a/components/camel-xchange/src/main/java/org/apache/camel/component/xchange/XChangeComponent.java b/components/camel-xchange/src/main/java/org/apache/camel/component/xchange/XChangeComponent.java index 8983ce00267..f8b4f2200da 100644 --- a/components/camel-xchange/src/main/java/org/apache/camel/component/xchange/XChangeComponent.java +++ b/components/camel-xchange/src/main/java/org/apache/camel/component/xchange/XChangeComponent.java @@ -65,15 +65,11 @@ public class XChangeComponent extends DefaultComponent { } private synchronized XChange getOrCreateXChange(String name) { - XChange xchange = xchanges.get(name); - if (xchange == null) { + return xchanges.computeIfAbsent(name, xc -> { Class<? extends Exchange> exchangeClass = XChangeHelper.loadXChangeClass(getCamelContext(), name); Assert.notNull(exchangeClass, "XChange not supported: " + name); - xchange = new XChange(createExchange(exchangeClass)); - xchanges.put(name, xchange); - } - - return xchange; + return new XChange(createExchange(exchangeClass)); + }); } } diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java index a821bb0d68a..f1560cf6122 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java @@ -1229,9 +1229,7 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor implements In public void notify(CamelEvent event) throws Exception { if (event instanceof CamelEvent.ExchangeSendingEvent ess) { Exchange e = ess.getExchange(); - if (uris.containsKey(e)) { - uris.put(e, ess.getEndpoint()); - } + uris.computeIfPresent(e, (key, val) -> ess.getEndpoint()); } } diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java index 537c0afa243..05e18f97b13 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java @@ -255,8 +255,8 @@ public class DefaultRuntimeEndpointRegistry extends EventNotifierSupport impleme String uri = endpoint.getEndpointUri(); Map<String, String> uris = outputs.get(routeId); - if (uris != null && !uris.containsKey(uri)) { - uris.put(uri, uri); + if (uris != null) { + uris.putIfAbsent(uri, uri); } if (extended) { String key = asUtilizationKey(routeId, uri); diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleLanguage.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleLanguage.java index 0c38af295e0..3f87269a587 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleLanguage.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleLanguage.java @@ -133,19 +133,16 @@ public class CSimpleLanguage extends TypedLanguageSupport implements StaticServi String text = expression.replace("\n", ""); text = text.trim(); - Predicate answer = compiledPredicates.get(text); - if (answer == null && compilationSupport != null) { - CSimpleExpression exp = compilationSupport.compilePredicate(getCamelContext(), expression); - if (exp != null) { - exp.init(getCamelContext()); - compiledPredicates.put(text, exp); - answer = exp; + return compiledPredicates.computeIfAbsent(text, key -> { + if (compilationSupport != null) { + CSimpleExpression exp = compilationSupport.compilePredicate(getCamelContext(), expression); + if (exp != null) { + exp.init(getCamelContext()); + return exp; + } } - } - if (answer == null) { throw new CSimpleException("Cannot find compiled csimple language for predicate: " + expression, expression); - } - return answer; + }); } @Override @@ -171,19 +168,16 @@ public class CSimpleLanguage extends TypedLanguageSupport implements StaticServi String text = expression.replace("\n", ""); text = text.trim(); - Expression answer = compiledExpressions.get(text); - if (answer == null && compilationSupport != null) { - CSimpleExpression exp = compilationSupport.compileExpression(getCamelContext(), expression); - if (exp != null) { - exp.init(getCamelContext()); - compiledExpressions.put(text, exp); - answer = exp; + return compiledExpressions.computeIfAbsent(text, key -> { + if (compilationSupport != null) { + CSimpleExpression exp = compilationSupport.compileExpression(getCamelContext(), expression); + if (exp != null) { + exp.init(getCamelContext()); + return exp; + } } - } - if (answer == null) { throw new CSimpleException("Cannot find compiled csimple language for expression: " + expression, expression); - } - return answer; + }); } private CompilationSupport compilationSupport() { diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java index c7a2abd94b5..4e5edf2a880 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java @@ -116,15 +116,16 @@ public final class AnnotationDependencyInjection { if (instance instanceof EventNotifier) { ManagementStrategy ms = camelContext.getManagementStrategy(); if (ms != null) { - // remove previous instance - EventNotifier old = notifiers.get(name); - if (old != null) { - ms.removeEventNotifier(old); - } - // and new notifier - EventNotifier en = (EventNotifier) instance; - ms.addEventNotifier(en); - notifiers.put(name, en); + notifiers.compute(name, (key, old) -> { + // remove previous instance + if (old != null) { + ms.removeEventNotifier(old); + } + // and new notifier + EventNotifier en = (EventNotifier) instance; + ms.addEventNotifier(en); + return en; + }); } } }