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

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

commit 2a28eb0a97f7ce7425d1071a7fc82bef071fa557
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Fri Apr 26 11:06:43 2024 +0200

    Various small code cleanup
---
 .../camel/catalog/console/CatalogConsole.java      |  1 +
 .../catalog/lucene/LuceneSuggestionStrategy.java   |  2 +-
 .../camel/catalog/maven/MavenArtifactProvider.java |  2 +-
 .../camel/catalog/maven/MavenVersionManager.java   |  7 +-
 .../org/apache/camel/catalog/CamelCatalog.java     | 67 ++++++------------
 .../apache/camel/catalog/DefaultCamelCatalog.java  | 48 +++----------
 .../java/org/apache/camel/maven/GenerateMojo.java  |  7 --
 .../org/apache/camel/maven/RouteCoverageMojo.java  | 79 +++++++++++-----------
 .../java/org/apache/camel/maven/ValidateMojo.java  | 19 +++---
 .../org/apache/camel/parser/java/MyNettyTest.java  |  4 +-
 .../camel/parser/java/MyRouteDuplicateIdTest.java  |  9 ++-
 .../camel/parser/java/MyRouteEmptyUriTest.java     |  4 +-
 .../org/apache/camel/parser/java/MyRouteTest.java  |  4 +-
 .../camel/component/as2/api/AS2ClientManager.java  |  1 +
 .../component/asterisk/AsteriskConsumerTest.java   |  3 +
 .../apache/camel/language/bean/BeanExpression.java | 14 ++--
 .../apache/camel/catalog/SuggestionStrategy.java   |  2 +-
 .../AbstractCamelRedeliveryPolicyFactoryBean.java  |  1 +
 .../jbang/core/commands/catalog/CatalogDoc.java    | 25 +++----
 .../camel/main/util/SuggestSimilarHelper.java      |  2 +-
 20 files changed, 128 insertions(+), 173 deletions(-)

diff --git 
a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
 
b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
index 97475eab8c6..828752ec0ad 100644
--- 
a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
+++ 
b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
@@ -30,6 +30,7 @@ import org.apache.camel.tooling.model.OtherModel;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "catalog", description = "Information about used Camel 
artifacts")
+@SuppressWarnings("java:S2160")
 public class CatalogConsole extends AbstractDevConsole {
 
     private static final String CP = System.getProperty("java.class.path");
diff --git 
a/catalog/camel-catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java
 
b/catalog/camel-catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java
index 55ffd816c1f..1f16a49db90 100644
--- 
a/catalog/camel-catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java
+++ 
b/catalog/camel-catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java
@@ -64,7 +64,7 @@ public class LuceneSuggestionStrategy implements 
SuggestionStrategy {
             // ignore
         }
 
-        return null;
+        return new String[0];
     }
 
 }
diff --git 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
index 915395aba17..c4fb3674674 100644
--- 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
+++ 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
@@ -28,7 +28,7 @@ public interface MavenArtifactProvider {
     /**
      * Configures the directory for the download cache.
      * <p/>
-     * The default folder is <tt>USER_HOME/.groovy/grape</tt>
+     * The default directory is provider dependant.
      *
      * @param directory the directory.
      */
diff --git 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
index d4c9657c707..b69ece33d9a 100644
--- 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
+++ 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.catalog.maven;
 
-import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -47,7 +46,7 @@ import org.slf4j.LoggerFactory;
  * <p/>
  * This implementation uses Maven Resolver to download the Maven JARs.
  */
-public class MavenVersionManager implements VersionManager, Closeable {
+public class MavenVersionManager implements VersionManager {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(MavenVersionManager.class);
 
@@ -262,8 +261,4 @@ public class MavenVersionManager implements VersionManager, 
Closeable {
 
         return null;
     }
-
-    @Override
-    public void close() {
-    }
 }
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index 3ba6ee5263a..56542990fa5 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import org.apache.camel.tooling.model.ArtifactModel;
 import org.apache.camel.tooling.model.BaseModel;
+import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.DataFormatModel;
 import org.apache.camel.tooling.model.DevConsoleModel;
@@ -233,28 +234,16 @@ public interface CamelCatalog {
      * @return      the list of part names of the given {@link Kind} available 
in this {@link CamelCatalog}
      */
     default List<String> findNames(Kind kind) {
-        switch (kind) {
-            case component:
-                return findComponentNames();
-            case dataformat:
-                return findDataFormatNames();
-            case language:
-                return findLanguageNames();
-            case transformer:
-                return findTransformerNames();
-            case console:
-                return findDevConsoleNames();
-            case other:
-                return findOtherNames();
-            case eip:
-                return findModelNames();
-            case bean:
-                return findBeansNames();
-            case model:
-                return findModelNames();
-            default:
-                throw new IllegalArgumentException("Unexpected kind " + kind);
-        }
+        return switch (kind) {
+            case component -> findComponentNames();
+            case dataformat -> findDataFormatNames();
+            case language -> findLanguageNames();
+            case transformer -> findTransformerNames();
+            case console -> findDevConsoleNames();
+            case other -> findOtherNames();
+            case eip, model -> findModelNames();
+            case bean -> findBeansNames();
+        };
     }
 
     /**
@@ -614,29 +603,17 @@ public interface CamelCatalog {
      * @param  name the name to look up
      * @return      the requested model or {@code null} in case it is not 
available in this {@link CamelCatalog}
      */
-    default BaseModel<?> model(Kind kind, String name) {
-        switch (kind) {
-            case component:
-                return componentModel(name);
-            case dataformat:
-                return dataFormatModel(name);
-            case language:
-                return languageModel(name);
-            case transformer:
-                return transformerModel(name);
-            case console:
-                return devConsoleModel(name);
-            case other:
-                return otherModel(name);
-            case eip:
-                return eipModel(name);
-            case bean:
-                return pojoBeanModel(name);
-            case model:
-                return eipModel(name);
-            default:
-                throw new IllegalArgumentException("Unexpected kind " + kind);
-        }
+    default BaseModel<? extends BaseOptionModel> model(Kind kind, String name) 
{
+        return switch (kind) {
+            case component -> componentModel(name);
+            case dataformat -> dataFormatModel(name);
+            case language -> languageModel(name);
+            case transformer -> transformerModel(name);
+            case console -> devConsoleModel(name);
+            case other -> otherModel(name);
+            case eip, model -> eipModel(name);
+            case bean -> pojoBeanModel(name);
+        };
     }
 
     /**
diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 0c7d873df41..4d7ce506b9a 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -554,43 +554,17 @@ public class DefaultCamelCatalog extends 
AbstractCachingCamelCatalog implements
 
     @Override
     public ArtifactModel<?> modelFromMavenGAV(String groupId, String 
artifactId, String version) {
-        for (String name : findComponentNames()) {
-            ArtifactModel<?> am = componentModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        for (String name : findDataFormatNames()) {
-            ArtifactModel<?> am = dataFormatModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        for (String name : findLanguageNames()) {
-            ArtifactModel<?> am = languageModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        for (String name : findOtherNames()) {
-            ArtifactModel<?> am = otherModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        for (String name : findTransformerNames()) {
-            ArtifactModel<?> am = transformerModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        for (String name : findDevConsoleNames()) {
-            ArtifactModel<?> am = devConsoleModel(name);
-            if (matchArtifact(am, groupId, artifactId, version)) {
-                return am;
-            }
-        }
-        return null;
+        return Stream.<Stream<ArtifactModel<?>>> of(
+                findComponentNames().stream().map(this::componentModel),
+                findDataFormatNames().stream().map(this::dataFormatModel),
+                findLanguageNames().stream().map(this::languageModel),
+                findOtherNames().stream().map(this::otherModel),
+                findTransformerNames().stream().map(this::transformerModel),
+                findDevConsoleNames().stream().map(this::devConsoleModel))
+                .flatMap(s -> s)
+                .filter(am -> matchArtifact(am, groupId, artifactId, version))
+                .findFirst()
+                .orElse(null);
     }
 
     @Override
diff --git 
a/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
 
b/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
index 039557115b1..269f5fbe7d8 100644
--- 
a/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
+++ 
b/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
@@ -47,7 +47,6 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.MavenProject;
 import org.codehaus.mojo.exec.AbstractExecMojo;
 import org.jboss.forge.roaster.Roaster;
 import org.jboss.forge.roaster.model.JavaType;
@@ -66,12 +65,6 @@ public class GenerateMojo extends AbstractExecMojo {
     public static final String GENERATED_MSG = "Generated by camel build tools 
- do NOT edit this file!";
     public static final String RESOURCE_FILE = 
"META-INF/services/org/apache/camel/csimple.properties";
 
-    /**
-     * The maven project.
-     */
-    @Parameter(property = "project", required = true, readonly = true)
-    protected MavenProject project;
-
     // Output directory
 
     /**
diff --git 
a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
 
b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
index b227b3c90c9..276f60c5f33 100644
--- 
a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
+++ 
b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
@@ -77,6 +77,9 @@ import static 
org.apache.camel.catalog.common.CatalogHelper.stripRootPath;
 public class RouteCoverageMojo extends AbstractMojo {
 
     public static final String DESTINATION_DIR = 
"/target/camel-route-coverage";
+
+    private static final String MAIN_FORMAT_PATTERN = "%8s    %8s    %s%n";
+
     /**
      * The maven project.
      */
@@ -93,24 +96,18 @@ public class RouteCoverageMojo extends AbstractMojo {
      * Whether to fail if a route was not fully covered.
      *
      * Note the option coverageThreshold can be used to set a minimum coverage 
threshold in percentage.
-     *
-     * @parameter property="camel.failOnError" default-value="false"
      */
     @Parameter(property = "camel.failOnError", defaultValue = "false")
     private boolean failOnError;
 
     /**
      * The minimum route coverage in percent when using failOnError.
-     *
-     * @parameter property="camel.coverageThreshold" default-value="100"
      */
     @Parameter(property = "camel.coverageThreshold", defaultValue = "100")
     private byte coverageThreshold = 100;
 
     /**
      * The minimum coverage across all routes in percent when using 
failOnError.
-     *
-     * @parameter property="camel.overallCoverageThreshold" default-value="0"
      */
     @Parameter(property = "camel.overallCoverageThreshold", defaultValue = "0")
     private byte overallCoverageThreshold;
@@ -163,32 +160,7 @@ public class RouteCoverageMojo extends AbstractMojo {
             return;
         }
 
-        Set<File> javaFiles = new LinkedHashSet<>();
-        Set<File> xmlFiles = new LinkedHashSet<>();
-
-        // find all java route builder classes
-        findJavaRouteBuilderClasses(javaFiles, true, includeTest, project);
-        // find all xml routes
-        findXmlRouters(xmlFiles, true, includeTest, project);
-
-        List<CamelNodeDetails> routeTrees = new ArrayList<>();
-
-        for (File file : javaFiles) {
-            addJavaFiles(file, routeTrees);
-        }
-        for (File file : xmlFiles) {
-            addXmlFiles(file, routeTrees);
-        }
-
-        getLog().info("Discovered " + routeTrees.size() + " routes");
-
-        // skip any routes which has no route id assigned
-
-        long anonymous = routeTrees.stream().filter(t -> t.getRouteId() == 
null).count();
-        if (!anonymousRoutes && anonymous > 0) {
-            getLog().warn(
-                    "Discovered " + anonymous + " anonymous routes. Add route 
ids to these routes for route coverage support");
-        }
+        List<CamelNodeDetails> routeTrees = discoverRoutes();
 
         final AtomicInteger notCovered = new AtomicInteger();
         final AtomicInteger coveredNodes = new AtomicInteger();
@@ -226,7 +198,7 @@ public class RouteCoverageMojo extends AbstractMojo {
             String packageName = new File(fileName).getParent();
             Element pack = null;
 
-            if (generateJacocoXmlReport && report != null) {
+            if (report != null) {
                 // package tag
                 pack = document.createElement("package");
                 createAttrString(document, pack, "name", packageName);
@@ -239,7 +211,7 @@ public class RouteCoverageMojo extends AbstractMojo {
                             sourceFileName, pack);
         }
 
-        if (generateJacocoXmlReport && report != null) {
+        if (report != null) {
             doGenerateJacocoReport(file, document);
         }
 
@@ -264,6 +236,37 @@ public class RouteCoverageMojo extends AbstractMojo {
         }
     }
 
+    private List<CamelNodeDetails> discoverRoutes() {
+        Set<File> javaFiles = new LinkedHashSet<>();
+        Set<File> xmlFiles = new LinkedHashSet<>();
+
+        // find all java route builder classes
+        findJavaRouteBuilderClasses(javaFiles, true, includeTest, project);
+        // find all xml routes
+        findXmlRouters(xmlFiles, true, includeTest, project);
+
+        List<CamelNodeDetails> routeTrees = new ArrayList<>();
+
+        for (File file : javaFiles) {
+            addJavaFiles(file, routeTrees);
+        }
+        for (File file : xmlFiles) {
+            addXmlFiles(file, routeTrees);
+        }
+
+        getLog().info("Discovered " + routeTrees.size() + " routes");
+
+        // skip any routes which has no route id assigned
+
+        long anonymous = routeTrees.stream().filter(t -> t.getRouteId() == 
null).count();
+        if (!anonymousRoutes && anonymous > 0) {
+            getLog().warn(
+                    "Discovered " + anonymous + " anonymous routes. Add route 
ids to these routes for route coverage support");
+        }
+
+        return routeTrees;
+    }
+
     private int grabDumpData(
             CamelNodeDetails t, String routeId, int totalNumberOfNodes, String 
fileName, AtomicInteger notCovered,
             AtomicInteger coveredNodes, Element report, Document document, 
String sourceFileName, Element pack)
@@ -281,7 +284,7 @@ public class RouteCoverageMojo extends AbstractMojo {
                 getLog().info("Route coverage summary:\n\n" + out);
                 getLog().info("");
 
-                if (generateJacocoXmlReport && report != null) {
+                if (report != null) {
                     appendSourcefileNode(document, sourceFileName, pack, 
coverage);
                 }
             }
@@ -476,8 +479,8 @@ public class RouteCoverageMojo extends AbstractMojo {
             sw.println("Route:\t" + routeId);
         }
         sw.println();
-        sw.printf("%8s    %8s    %s%n", "Line #", "Count", "Route");
-        sw.printf("%8s    %8s    %s%n", "------", "-----", "-----");
+        sw.printf(MAIN_FORMAT_PATTERN, "Line #", "Count", "Route");
+        sw.printf(MAIN_FORMAT_PATTERN, "------", "-----", "-----");
 
         int covered = 0;
         for (RouteCoverageNode node : model) {
@@ -485,7 +488,7 @@ public class RouteCoverageMojo extends AbstractMojo {
                 covered++;
             }
             String pad = padString(node.getLevel());
-            sw.printf("%8s    %8s    %s%n", node.getLineNumber(), 
node.getCount(), pad + node.getName());
+            sw.printf(MAIN_FORMAT_PATTERN, node.getLineNumber(), 
node.getCount(), pad + node.getName());
         }
 
         coveredNodes.addAndGet(covered);
diff --git 
a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java
 
b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java
index 529573b5b89..c0202a166a7 100644
--- 
a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java
+++ 
b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java
@@ -44,7 +44,6 @@ import org.apache.camel.tooling.maven.MavenDownloaderImpl;
 import org.apache.camel.tooling.maven.MavenResolutionException;
 import org.apache.camel.util.OrderedProperties;
 import org.apache.camel.util.StringHelper;
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Resource;
@@ -350,16 +349,18 @@ public class ValidateMojo extends AbstractMojo {
     private static void unzipArtifact(MavenArtifact artifact, Path target) 
throws IOException {
         try (ZipFile zipFile = new 
ZipFile(artifact.getFile().toPath().toFile())) {
             Enumeration<? extends ZipEntry> entries = zipFile.entries();
+            target = target.normalize();
             while (entries.hasMoreElements()) {
                 ZipEntry entry = entries.nextElement();
-                File entryDestination = new File(target.toString(), 
entry.getName());
-                if (entry.isDirectory()) {
-                    entryDestination.mkdirs();
-                } else {
-                    entryDestination.getParentFile().mkdirs();
-                    try (InputStream in = zipFile.getInputStream(entry);
-                         OutputStream out = new 
FileOutputStream(entryDestination)) {
-                        IOUtils.copy(in, out);
+                Path dest = target.resolve(entry.getName()).normalize();
+                if (dest.startsWith(target)) {
+                    if (entry.isDirectory()) {
+                        Files.createDirectories(dest);
+                    } else {
+                        Files.createDirectories(dest.getParent());
+                        try (InputStream in = zipFile.getInputStream(entry)) {
+                            Files.copy(in, dest);
+                        }
                     }
                 }
             }
diff --git 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyNettyTest.java
 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyNettyTest.java
index 4f1f9ce81dd..b0f0a7d9cd1 100644
--- 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyNettyTest.java
+++ 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyNettyTest.java
@@ -21,6 +21,8 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 @Disabled // on purpose to ignore
 public class MyNettyTest extends CamelTestSupport {
 
@@ -30,7 +32,7 @@ public class MyNettyTest extends CamelTestSupport {
 
     @Test
     void testFoo() {
-        // noop
+        assertTrue(context.isStarted());
     }
 
     @Override
diff --git 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteDuplicateIdTest.java
 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteDuplicateIdTest.java
index 1996112f7e9..bbc232fb196 100644
--- 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteDuplicateIdTest.java
+++ 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteDuplicateIdTest.java
@@ -16,20 +16,23 @@
  */
 package org.apache.camel.parser.java;
 
+import org.apache.camel.FailedToStartRouteException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 public class MyRouteDuplicateIdTest extends CamelTestSupport {
 
     @Override
-    public boolean isUseRouteBuilder() {
-        return false;
+    protected void startCamelContext() throws Exception {
+        // do not start context automatically
     }
 
     @Test
     void testFoo() {
-        // noop
+        assertThrows(FailedToStartRouteException.class, () -> context.start());
     }
 
     @Override
diff --git 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteEmptyUriTest.java
 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteEmptyUriTest.java
index 16d07cb2233..4e48a8a6153 100644
--- 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteEmptyUriTest.java
+++ 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteEmptyUriTest.java
@@ -21,12 +21,14 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 @Disabled // on purpose to ignore
 public class MyRouteEmptyUriTest extends CamelTestSupport {
 
     @Test
     void testFoo() {
-        // noop
+        assertTrue(context.isStarted());
     }
 
     @Override
diff --git 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteTest.java
 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteTest.java
index 8498b188046..be5681f6312 100644
--- 
a/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteTest.java
+++ 
b/catalog/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyRouteTest.java
@@ -20,11 +20,13 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 public class MyRouteTest extends CamelTestSupport {
 
     @Test
     void testFoo() {
-        // noop
+        assertTrue(context.isStarted());
     }
 
     @Override
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
index 9bc7b411e8e..eb8ec12e346 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
@@ -47,6 +47,7 @@ import org.bouncycastle.operator.OutputEncryptor;
 /**
  * Sends EDI Messages over HTTP
  */
+@SuppressWarnings("java:S2095")
 public class AS2ClientManager {
 
     //
diff --git 
a/components/camel-asterisk/src/test/java/org/apache/camel/component/asterisk/AsteriskConsumerTest.java
 
b/components/camel-asterisk/src/test/java/org/apache/camel/component/asterisk/AsteriskConsumerTest.java
index 9aa03d66931..2b9ff164793 100644
--- 
a/components/camel-asterisk/src/test/java/org/apache/camel/component/asterisk/AsteriskConsumerTest.java
+++ 
b/components/camel-asterisk/src/test/java/org/apache/camel/component/asterisk/AsteriskConsumerTest.java
@@ -27,6 +27,8 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 @Disabled("CAMEL-10321: Set host, username and password test asterisk 
consumer.")
 public class AsteriskConsumerTest extends CamelTestSupport {
     private static final Logger LOG = 
LoggerFactory.getLogger(AsteriskConsumerTest.class);
@@ -52,6 +54,7 @@ public class AsteriskConsumerTest extends CamelTestSupport {
     @Test
     void testStartRoute() {
         // do nothing here , just make sure the camel route can started.
+        assertTrue(context.isStarted());
     }
 
     @Override
diff --git 
a/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
 
b/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
index 572914f35bd..7bf0ccb98a3 100644
--- 
a/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
+++ 
b/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
@@ -347,13 +347,13 @@ public class BeanExpression implements Expression, 
Predicate {
     private static Object invokeBean(BeanHolder beanHolder, String beanName, 
String methodName, Exchange exchange) {
         Object result;
 
-        BeanExpressionProcessor processor = new 
BeanExpressionProcessor(beanHolder);
-        if (methodName != null) {
-            processor.setMethod(methodName);
-            // enable OGNL like invocation
-            processor.setShorthandMethod(true);
-        }
-        try {
+        try (BeanExpressionProcessor processor = new 
BeanExpressionProcessor(beanHolder)) {
+
+            if (methodName != null) {
+                processor.setMethod(methodName);
+                // enable OGNL like invocation
+                processor.setShorthandMethod(true);
+            }
             // copy the original exchange to avoid side effects on it
             Exchange resultExchange = ExchangeHelper.createCopy(exchange, 
true);
             // remove any existing exception in case we do OGNL on the 
exception
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java 
b/core/camel-api/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
index e5b4e8e1b2a..b6d015cbc4b 100644
--- 
a/core/camel-api/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
@@ -28,7 +28,7 @@ public interface SuggestionStrategy {
      *
      * @param  names         valid names
      * @param  unknownOption unknown option name
-     * @return               a list of suggested names (did you mean)
+     * @return               an array of suggested names (did you mean)
      */
     String[] suggestEndpointOptions(Set<String> names, String unknownOption);
 }
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
index af14fec1fd4..0d865c833b9 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelRedeliveryPolicyFactoryBean.java
@@ -125,6 +125,7 @@ public abstract class 
AbstractCamelRedeliveryPolicyFactoryBean extends AbstractC
     private String exchangeFormatterRef;
 
     @Override
+    @SuppressWarnings("java:S3776")
     public RedeliveryPolicy getObject() throws Exception {
         RedeliveryPolicy answer = new RedeliveryPolicy();
         CamelContext context = getCamelContext();
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
index 3c06f393c8c..56afd044dff 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
@@ -173,26 +173,23 @@ public class CatalogDoc extends CamelCommand {
                 // assume its a component
                 suggestions = 
SuggestSimilarHelper.didYouMean(findComponentNames(catalog), name);
             }
-            if (suggestions != null) {
+            if (!suggestions.isEmpty()) {
                 String type = kamelet ? "kamelet" : "component";
                 printer().printf("Camel %s: %s not found. Did you mean? %s%n", 
type, name, String.join(", ", suggestions));
             } else {
                 printer().println("Camel resource: " + name + " not found");
             }
         } else {
-            List<String> suggestions = null;
-            if ("kamelet".equals(prefix)) {
-                suggestions = 
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion),
 name);
-            } else if ("component".equals(prefix)) {
-                suggestions = 
SuggestSimilarHelper.didYouMean(findComponentNames(catalog), name);
-            } else if ("dataformat".equals(prefix)) {
-                suggestions = 
SuggestSimilarHelper.didYouMean(catalog.findDataFormatNames(), name);
-            } else if ("language".equals(prefix)) {
-                suggestions = 
SuggestSimilarHelper.didYouMean(catalog.findLanguageNames(), name);
-            } else if ("other".equals(prefix)) {
-                suggestions = 
SuggestSimilarHelper.didYouMean(catalog.findOtherNames(), name);
-            }
-            if (suggestions != null) {
+            List<String> suggestions = switch (prefix) {
+                case "kamelet" ->
+                    
SuggestSimilarHelper.didYouMean(KameletCatalogHelper.findKameletNames(kameletsVersion),
 name);
+                case "component" -> 
SuggestSimilarHelper.didYouMean(findComponentNames(catalog), name);
+                case "dataformat" -> 
SuggestSimilarHelper.didYouMean(catalog.findDataFormatNames(), name);
+                case "language" -> 
SuggestSimilarHelper.didYouMean(catalog.findLanguageNames(), name);
+                case "other" -> 
SuggestSimilarHelper.didYouMean(catalog.findOtherNames(), name);
+                default -> List.of();
+            };
+            if (!suggestions.isEmpty()) {
                 printer().printf("Camel %s: %s not found. Did you mean? %s%n", 
prefix, name, String.join(", ", suggestions));
             } else {
                 printer().printf("Camel %s: %s not found.%n", prefix, name);
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/SuggestSimilarHelper.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/SuggestSimilarHelper.java
index f4f12d77fb2..7e8a4cbab2d 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/SuggestSimilarHelper.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/SuggestSimilarHelper.java
@@ -34,7 +34,7 @@ public final class SuggestSimilarHelper {
             return Arrays.asList(suggestions);
         }
 
-        return null;
+        return List.of();
     }
 
 }

Reply via email to