You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/12/01 18:07:45 UTC

(camel) branch main updated: CAMEL-20173: camel-jbang - Run with download=false should set maven in offline mode. (#12293)

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 0fa1294b2e5 CAMEL-20173: camel-jbang - Run with download=false should set maven in offline mode. (#12293)
0fa1294b2e5 is described below

commit 0fa1294b2e5919e36577366d68032aba723122c9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Dec 1 19:07:37 2023 +0100

    CAMEL-20173: camel-jbang - Run with download=false should set maven in offline mode. (#12293)
---
 .../java/org/apache/camel/main/KameletMain.java    | 172 ++++++++++-----------
 .../main/console/DependencyDownloaderConsole.java  |  27 +++-
 .../camel/main/download/DependencyDownloader.java  |  10 ++
 .../main/download/MavenDependencyDownloader.java   |  10 ++
 .../camel/tooling/maven/MavenDownloader.java       |  30 ++++
 .../camel/tooling/maven/MavenDownloaderImpl.java   |  81 +++-------
 .../camel/tooling/maven/MavenResolverTest.java     |   2 +-
 7 files changed, 171 insertions(+), 161 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index b893cdd603d..7effdfae500 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -355,40 +355,41 @@ public class KameletMain extends MainCommandLineSupport {
         DefaultCamelContext answer = new DefaultCamelContext(false);
         // setup backlog recorder from very start
         answer.getCamelContextExtension().setStartupStepRecorder(new BacklogStartupStepRecorder());
-        if (download) {
-            ClassLoader dynamicCL = createApplicationContextClassLoader(answer);
-            answer.setApplicationContextClassLoader(dynamicCL);
-            PluginHelper.getPackageScanClassResolver(answer).addClassLoader(dynamicCL);
-            PluginHelper.getPackageScanResourceResolver(answer).addClassLoader(dynamicCL);
-
-            KnownReposResolver known = new KnownReposResolver();
-            known.loadKnownDependencies();
-            MavenDependencyDownloader downloader = new MavenDependencyDownloader();
-            downloader.setKnownReposResolver(known);
-            downloader.setClassLoader(dynamicCL);
-            downloader.setCamelContext(answer);
-            downloader.setVerbose(verbose);
-            downloader.setRepos(repos);
-            downloader.setFresh(fresh);
-            downloader.setMavenSettings(mavenSettings);
-            downloader.setMavenSettingsSecurity(mavenSettingsSecurity);
-            if (downloadListener != null) {
-                downloader.addDownloadListener(downloadListener);
-            }
-            downloader.addDownloadListener(new AutoConfigureDownloadListener());
-            downloader.addArtifactDownloadListener(new TypeConverterLoaderDownloadListener());
-            downloader.addArtifactDownloadListener(new BasePackageScanDownloadListener());
 
-            // register as extension
-            try {
-                answer.addService(downloader);
-            } catch (Exception e) {
-                throw RuntimeCamelException.wrapRuntimeException(e);
-            }
+        ClassLoader dynamicCL = createApplicationContextClassLoader(answer);
+        answer.setApplicationContextClassLoader(dynamicCL);
+        PluginHelper.getPackageScanClassResolver(answer).addClassLoader(dynamicCL);
+        PluginHelper.getPackageScanResourceResolver(answer).addClassLoader(dynamicCL);
+
+        KnownReposResolver knownRepos = new KnownReposResolver();
+        knownRepos.loadKnownDependencies();
+        MavenDependencyDownloader downloader = new MavenDependencyDownloader();
+        downloader.setDownload(download);
+        downloader.setKnownReposResolver(knownRepos);
+        downloader.setClassLoader(dynamicCL);
+        downloader.setCamelContext(answer);
+        downloader.setVerbose(verbose);
+        downloader.setRepos(repos);
+        downloader.setFresh(fresh);
+        downloader.setMavenSettings(mavenSettings);
+        downloader.setMavenSettingsSecurity(mavenSettingsSecurity);
+        if (downloadListener != null) {
+            downloader.addDownloadListener(downloadListener);
+        }
+        downloader.addDownloadListener(new AutoConfigureDownloadListener());
+        downloader.addArtifactDownloadListener(new TypeConverterLoaderDownloadListener());
+        downloader.addArtifactDownloadListener(new BasePackageScanDownloadListener());
 
-            // in case we use circuit breakers
-            CircuitBreakerDownloader.registerDownloadReifiers();
+        // register as extension
+        try {
+            answer.addService(downloader);
+        } catch (Exception e) {
+            throw RuntimeCamelException.wrapRuntimeException(e);
         }
+
+        // in case we use circuit breakers
+        CircuitBreakerDownloader.registerDownloadReifiers();
+
         if (silent || "*".equals(stubPattern)) {
             // turn off auto-wiring when running in silent mode (or stub = *)
             mainConfigurationProperties.setAutowiredEnabled(false);
@@ -521,48 +522,45 @@ public class KameletMain extends MainCommandLineSupport {
                 answer.addService(new CommandLineDependencyDownloader(answer, dependencies.toString()));
             }
 
-            KnownDependenciesResolver known = new KnownDependenciesResolver(answer);
-            known.loadKnownDependencies();
-            if (download) {
-                DependencyDownloaderPropertyBindingListener listener
-                        = new DependencyDownloaderPropertyBindingListener(answer, known);
-                answer.getCamelContextExtension().getRegistry()
-                        .bind(DependencyDownloaderPropertyBindingListener.class.getSimpleName(), listener);
-                answer.getCamelContextExtension().getRegistry().bind(DependencyDownloaderStrategy.class.getSimpleName(),
-                        new DependencyDownloaderStrategy(answer));
-
-                // download class-resolver
-                ClassResolver classResolver = new DependencyDownloaderClassResolver(answer, known);
-                answer.setClassResolver(classResolver);
-                // re-create factory finder with download class-resolver
-                FactoryFinderResolver ffr = PluginHelper.getFactoryFinderResolver(answer);
-                FactoryFinder ff = ffr.resolveBootstrapFactoryFinder(classResolver);
-                answer.getCamelContextExtension().setBootstrapFactoryFinder(ff);
-                ff = ffr.resolveDefaultFactoryFinder(classResolver);
-                answer.getCamelContextExtension().setDefaultFactoryFinder(ff);
-
-                answer.getCamelContextExtension().addContextPlugin(ComponentResolver.class,
-                        new DependencyDownloaderComponentResolver(answer, stubPattern, silent));
-                answer.getCamelContextExtension().addContextPlugin(UriFactoryResolver.class,
-                        new DependencyDownloaderUriFactoryResolver(answer));
-                answer.getCamelContextExtension().addContextPlugin(DataFormatResolver.class,
-                        new DependencyDownloaderDataFormatResolver(answer));
-                answer.getCamelContextExtension().addContextPlugin(LanguageResolver.class,
-                        new DependencyDownloaderLanguageResolver(answer));
-                answer.getCamelContextExtension().addContextPlugin(ResourceLoader.class,
-                        new DependencyDownloaderResourceLoader(answer));
-            }
+            KnownDependenciesResolver knownDeps = new KnownDependenciesResolver(answer);
+            knownDeps.loadKnownDependencies();
+            DependencyDownloaderPropertyBindingListener listener
+                    = new DependencyDownloaderPropertyBindingListener(answer, knownDeps);
+            answer.getCamelContextExtension().getRegistry()
+                    .bind(DependencyDownloaderPropertyBindingListener.class.getSimpleName(), listener);
+            answer.getCamelContextExtension().getRegistry().bind(DependencyDownloaderStrategy.class.getSimpleName(),
+                    new DependencyDownloaderStrategy(answer));
+
+            // download class-resolver
+            ClassResolver classResolver = new DependencyDownloaderClassResolver(answer, knownDeps);
+            answer.setClassResolver(classResolver);
+            // re-create factory finder with download class-resolver
+            FactoryFinderResolver ffr = PluginHelper.getFactoryFinderResolver(answer);
+            FactoryFinder ff = ffr.resolveBootstrapFactoryFinder(classResolver);
+            answer.getCamelContextExtension().setBootstrapFactoryFinder(ff);
+            ff = ffr.resolveDefaultFactoryFinder(classResolver);
+            answer.getCamelContextExtension().setDefaultFactoryFinder(ff);
+
+            answer.getCamelContextExtension().addContextPlugin(ComponentResolver.class,
+                    new DependencyDownloaderComponentResolver(answer, stubPattern, silent));
+            answer.getCamelContextExtension().addContextPlugin(UriFactoryResolver.class,
+                    new DependencyDownloaderUriFactoryResolver(answer));
+            answer.getCamelContextExtension().addContextPlugin(DataFormatResolver.class,
+                    new DependencyDownloaderDataFormatResolver(answer));
+            answer.getCamelContextExtension().addContextPlugin(LanguageResolver.class,
+                    new DependencyDownloaderLanguageResolver(answer));
+            answer.getCamelContextExtension().addContextPlugin(ResourceLoader.class,
+                    new DependencyDownloaderResourceLoader(answer));
+
             answer.setInjector(new KameletMainInjector(answer.getInjector(), stubPattern, silent));
-            if (download) {
-                Object kameletsVersion = getInitialProperties().get("camel.jbang.kameletsVersion");
-                if (kameletsVersion != null) {
-                    answer.addService(new DependencyDownloaderKamelet(answer, kameletsVersion.toString()));
-                } else {
-                    answer.addService(new DependencyDownloaderKamelet(answer));
-                }
-                answer.getCamelContextExtension().getRegistry().bind(DownloadModelineParser.class.getSimpleName(),
-                        new DownloadModelineParser(answer));
+            Object kameletsVersion = getInitialProperties().get("camel.jbang.kameletsVersion");
+            if (kameletsVersion != null) {
+                answer.addService(new DependencyDownloaderKamelet(answer, kameletsVersion.toString()));
+            } else {
+                answer.addService(new DependencyDownloaderKamelet(answer));
             }
+            answer.getCamelContextExtension().getRegistry().bind(DownloadModelineParser.class.getSimpleName(),
+                    new DownloadModelineParser(answer));
 
             // reloader
             String sourceDir = getInitialProperties().getProperty("camel.jbang.sourceDir");
@@ -609,12 +607,9 @@ public class KameletMain extends MainCommandLineSupport {
     protected void configurePropertiesService(CamelContext camelContext) throws Exception {
         super.configurePropertiesService(camelContext);
 
-        // properties functions, which can download
-        if (download) {
-            org.apache.camel.component.properties.PropertiesComponent pc
-                    = (org.apache.camel.component.properties.PropertiesComponent) camelContext.getPropertiesComponent();
-            pc.setPropertiesFunctionResolver(new DependencyDownloaderPropertiesFunctionResolver(camelContext));
-        }
+        org.apache.camel.component.properties.PropertiesComponent pc
+                = (org.apache.camel.component.properties.PropertiesComponent) camelContext.getPropertiesComponent();
+        pc.setPropertiesFunctionResolver(new DependencyDownloaderPropertiesFunctionResolver(camelContext));
     }
 
     @Override
@@ -692,22 +687,17 @@ public class KameletMain extends MainCommandLineSupport {
             cs.setWorkDir(dir);
         }
 
-        if (download) {
-            DependencyDownloaderRoutesLoader routesLoader;
-
-            Object kameletsVersion = getInitialProperties().get("camel.jbang.kameletsVersion");
-            if (kameletsVersion != null) {
-                routesLoader = new DependencyDownloaderRoutesLoader(camelContext, kameletsVersion.toString());
-            } else {
-                routesLoader = new DependencyDownloaderRoutesLoader(camelContext);
-            }
-            routesLoader.setIgnoreLoadingError(this.mainConfigurationProperties.isRoutesCollectorIgnoreLoadingError());
-
-            // use resolvers that can auto downloaded
-            ecc.addContextPlugin(RoutesLoader.class, routesLoader);
+        DependencyDownloaderRoutesLoader routesLoader;
+        Object kameletsVersion = getInitialProperties().get("camel.jbang.kameletsVersion");
+        if (kameletsVersion != null) {
+            routesLoader = new DependencyDownloaderRoutesLoader(camelContext, kameletsVersion.toString());
         } else {
-            super.configureRoutesLoader(camelContext);
+            routesLoader = new DependencyDownloaderRoutesLoader(camelContext);
         }
+        routesLoader.setIgnoreLoadingError(this.mainConfigurationProperties.isRoutesCollectorIgnoreLoadingError());
+
+        // use resolvers that can auto downloaded
+        ecc.addContextPlugin(RoutesLoader.class, routesLoader);
     }
 
     /**
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
index 76b5387d816..3bae763696a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/console/DependencyDownloaderConsole.java
@@ -39,16 +39,15 @@ public class DependencyDownloaderConsole extends AbstractDevConsole {
     protected String doCallText(Map<String, Object> options) {
         StringBuilder sb = new StringBuilder();
 
-        ClassLoader cl = getCamelContext().getApplicationContextClassLoader();
-        if (cl instanceof DependencyDownloaderClassLoader) {
-            DependencyDownloaderClassLoader ddcl = (DependencyDownloaderClassLoader) cl;
-            sb.append("Dependencies:");
-            String cp = String.join("\n    ", ddcl.getDownloaded());
-            sb.append("\n    ").append(cp).append("\n");
-        }
-
         MavenDependencyDownloader downloader = getCamelContext().hasService(MavenDependencyDownloader.class);
         if (downloader != null) {
+            sb.append("Offline: " + !downloader.isDownload());
+            sb.append("\nFresh:   " + !downloader.isFresh());
+            sb.append("\nVerbose: " + !downloader.isVerbose());
+            if (downloader.getRepos() != null) {
+                sb.append("\nExtra Repositories: " + downloader.getRepos());
+            }
+            sb.append("\n");
             sb.append("\nDownloads:");
             for (DownloadRecord r : downloader.downloadRecords()) {
                 sb.append("\n    ").append(String.format("%s:%s:%s (took: %s) from: %s@%s",
@@ -57,6 +56,14 @@ public class DependencyDownloaderConsole extends AbstractDevConsole {
             }
         }
 
+        ClassLoader cl = getCamelContext().getApplicationContextClassLoader();
+        if (cl instanceof DependencyDownloaderClassLoader) {
+            DependencyDownloaderClassLoader ddcl = (DependencyDownloaderClassLoader) cl;
+            sb.append("\n\nDependencies:");
+            String cp = String.join("\n    ", ddcl.getDownloaded());
+            sb.append("\n    ").append(cp).append("\n");
+        }
+
         return sb.toString();
     }
 
@@ -74,6 +81,10 @@ public class DependencyDownloaderConsole extends AbstractDevConsole {
         MavenDependencyDownloader downloader = getCamelContext().hasService(MavenDependencyDownloader.class);
         if (downloader != null) {
             JsonArray arr = new JsonArray();
+            root.put("offline", !downloader.isDownload());
+            root.put("fresh", downloader.isFresh());
+            root.put("verbose", downloader.isVerbose());
+            root.put("repos", downloader.getRepos());
             root.put("downloads", arr);
             for (DownloadRecord r : downloader.downloadRecords()) {
                 JsonObject jo = new JsonObject();
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
index 15bbef3c70f..ad29b641e9c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
@@ -55,6 +55,16 @@ public interface DependencyDownloader extends CamelContextAware, StaticService {
      */
     void setRepos(String repos);
 
+    /**
+     * Whether downloading from remote Maven repositories is enabled
+     */
+    void setDownload(boolean download);
+
+    /**
+     * Whether downloading from remote Maven repositories is enabled
+     */
+    boolean isDownload();
+
     boolean isFresh();
 
     /**
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index 56cf704901b..3a7ee1a30f6 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -70,6 +70,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
     private final Set<ArtifactDownloadListener> artifactDownloadListeners = new LinkedHashSet<>();
     private final Map<String, DownloadRecord> downloadRecords = new HashMap<>();
     private KnownReposResolver knownReposResolver;
+    private boolean download = true;
 
     // all maven-resolver work is delegated to camel-tooling-maven
     private MavenDownloader mavenDownloader;
@@ -148,6 +149,14 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         this.fresh = fresh;
     }
 
+    public boolean isDownload() {
+        return download;
+    }
+
+    public void setDownload(boolean download) {
+        this.download = download;
+    }
+
     @Override
     public String getMavenSettings() {
         return mavenSettings;
@@ -463,6 +472,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         mavenDownloaderImpl.setMavenSettingsSecurityLocation(mavenSettingsSecurity);
         mavenDownloaderImpl.setRepos(repos);
         mavenDownloaderImpl.setFresh(fresh);
+        mavenDownloaderImpl.setOffline(!download);
         // use listener to keep track of which JARs was downloaded from a remote Maven repo (and how long time it took)
         mavenDownloaderImpl.setRemoteArtifactDownloadListener(new RemoteArtifactDownloadListener() {
             @Override
diff --git a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
index 1d9def72135..6e53ed3e6c2 100644
--- a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
+++ b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
@@ -61,4 +61,34 @@ public interface MavenDownloader {
      */
     void setRemoteArtifactDownloadListener(RemoteArtifactDownloadListener listener);
 
+    /**
+     * Set a flag determining Maven update behavior. See the description of {@code -U,--update-snapshots} Maven option.
+     * When set to {@code true}, Maven metadata (to determine newest SNAPSHOT or RELEASE or LATEST version) is always
+     * fetched.
+     */
+    void setFresh(boolean fresh);
+
+    /**
+     * Sets maven downloader in offline mode
+     */
+    void setOffline(boolean offline);
+
+    /**
+     * Configure comma-separated list of repositories to use (in addition to the ones discovered from Maven settings).
+     */
+    void setRepos(String repos);
+
+    /**
+     * Configure a location of {@code settings-security.xml} (when not set, defaults to
+     * {@code ~/.m2/settings-security.xml} unless {@link #setMavenSettingsLocation(String)} is set explicitly set to
+     * {@code "false"}.
+     */
+    void setMavenSettingsSecurityLocation(String mavenSettingsSecurity);
+
+    /**
+     * Configure a location of {@code settings.xml} (when not set, defaults to {@code ~/.m2/settings.xml} unless it's
+     * explicitly set to {@code "false"}.
+     */
+    void setMavenSettingsLocation(String mavenSettings);
+
 }
diff --git a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
index 6020b4ce665..dd2c4d6c322 100644
--- a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
+++ b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
@@ -260,6 +260,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
     // comma-separated list of additional repositories to use
     private String repos;
     private boolean fresh;
+    private boolean offline;
     private RemoteArtifactDownloadListener remoteArtifactDownloadListener;
 
     private boolean apacheSnapshotsIncluded;
@@ -301,12 +302,16 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
         // locations of settings.xml and settings-security.xml
         validateMavenSettingsLocations();
         if (repositorySystem == null) {
-            repositorySystem = configureRepositorySystem(registry, systemProperties, mavenSettingsSecurity);
+            repositorySystem = configureRepositorySystem(registry, systemProperties, mavenSettingsSecurity, offline);
         }
 
         // read the settings if not provided
         Settings settings = this.settings == null
                 ? mavenConfiguration(registry, repositorySystem, systemProperties, mavenSettings) : this.settings;
+        if (offline) {
+            LOG.info("MavenDownloader in offline mode");
+            settings.setOffline(true);
+        }
 
         if (repositorySystemSession == null) {
             // prepare the Maven session (local repository was configured within the settings)
@@ -540,6 +545,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
         copy.apacheSnapshotsIncluded = apacheSnapshotsIncluded;
         copy.customRepositoryCounter = customRepositoryCounter;
         copy.repositoryResolver = repositoryResolver;
+        copy.offline = offline;
 
         LocalRepositoryManagerFactory lrmFactory = registry.lookupByClass(LocalRepositoryManagerFactory.class);
 
@@ -608,7 +614,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
      */
     RepositorySystem configureRepositorySystem(
             DIRegistry registry,
-            Properties systemProperties, String settingsSecurityLocation) {
+            Properties systemProperties, String settingsSecurityLocation, boolean offline) {
         basicRepositorySystemConfiguration(registry);
         transportConfiguration(registry, systemProperties);
         settingsConfiguration(registry, settingsSecurityLocation);
@@ -1129,7 +1135,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
         // to associate authentications with remote repositories (also mirrored)
         session.setAuthenticationSelector(authenticationSelector);
         // offline mode selected using for example `camel run --download` option - should be online by default
-        session.setOffline(false);
+        session.setOffline(offline);
         // controls whether repositories declared in artifact descriptors should be ignored during transitive
         // dependency collection
         session.setIgnoreArtifactDescriptorRepositories(true);
@@ -1161,8 +1167,6 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
      * This method is used during initialization of this {@link MavenDownloader}, but when invoking actual
      * download/resolve methods, we can use additional repositories.
      * </p>
-     *
-     * @param settings maven settings
      */
     List<RemoteRepository> configureDefaultRepositories(Settings settings) {
         List<RemoteRepository> repositories = new ArrayList<>();
@@ -1241,7 +1245,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
                         }
                     }
                 } catch (MalformedURLException e) {
-                    LOG.warn("Can't use {} URL from Maven settings: {}. Skipping.", r.getUrl(), e.getMessage(), e);
+                    LOG.warn("Cannot use {} URL from Maven settings: {}. Skipping.", r.getUrl(), e.getMessage(), e);
                 }
             }
         }
@@ -1253,9 +1257,6 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
      * Helper method to translate a collection of Strings for remote repository URLs into actual instances of
      * {@link RemoteRepository} added to the passed {@code repositories}. We don't detected duplicates here and we don't
      * do mirror/proxy processing of the repositories.
-     *
-     * @param repositories
-     * @param urls
      */
     private void configureRepositories(List<RemoteRepository> repositories, Set<String> urls) {
         urls.forEach(repo -> {
@@ -1278,82 +1279,40 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
                             .build());
                 }
             } catch (MalformedURLException e) {
-                LOG.warn("Can't use {} URL: {}. Skipping.", repo, e.getMessage(), e);
+                LOG.warn("Cannot use {} URL: {}. Skipping.", repo, e.getMessage(), e);
             }
         });
     }
 
-    /**
-     * Configure a location of {@code settings.xml} (when not set, defaults to {@code ~/.m2/settings.xml} unless it's
-     * explicitly set to {@code "false"}.
-     *
-     * @param mavenSettings
-     */
+    @Override
     public void setMavenSettingsLocation(String mavenSettings) {
         this.mavenSettings = mavenSettings;
     }
 
-    /**
-     * Configure a location of {@code settings-security.xml} (when not set, defaults to
-     * {@code ~/.m2/settings-security.xml} unless {@link #setMavenSettingsLocation(String)} is set explicitly set to
-     * {@code "false"}.
-     *
-     * @param mavenSettingsSecurity
-     */
+    @Override
     public void setMavenSettingsSecurityLocation(String mavenSettingsSecurity) {
         this.mavenSettingsSecurity = mavenSettingsSecurity;
     }
 
-    /**
-     * Configure comma-separated list of repositories to use (in addition to the ones discovered from Maven settings).
-     *
-     * @param repos
-     */
+    @Override
     public void setRepos(String repos) {
         this.repos = repos;
     }
 
-    /**
-     * Set a flag determining Maven update behavior. See the description of {@code -U,--update-snapshots} Maven option.
-     * When set to {@code true}, Maven metadata (to determine newest SNAPSHOT or RELEASE or LATEST version) is always
-     * fetched.
-     *
-     * @param fresh
-     */
+    @Override
     public void setFresh(boolean fresh) {
         this.fresh = fresh;
     }
 
-    private static class AcceptAllDependencyFilter implements DependencyFilter {
-        @Override
-        public boolean accept(DependencyNode node, List<DependencyNode> parents) {
-            return true;
-        }
+    @Override
+    public void setOffline(boolean offline) {
+        this.offline = offline;
     }
 
-    private static class AcceptDirectDependencyFilter implements DependencyFilter {
-        private final List<ArtifactRequest> requests;
-
-        public AcceptDirectDependencyFilter(List<ArtifactRequest> requests) {
-            this.requests = requests;
-        }
-
+    private static class AcceptAllDependencyFilter implements DependencyFilter {
         @Override
         public boolean accept(DependencyNode node, List<DependencyNode> parents) {
-            Dependency dependency = node.getDependency();
-            if (dependency == null) {
-                return false;
-            }
-            Artifact current = dependency.getArtifact();
-            for (ArtifactRequest ar : requests) {
-                if (current.getGroupId().equals(ar.getArtifact().getGroupId())
-                        && current.getArtifactId().equals(ar.getArtifact().getArtifactId())
-                        && current.getExtension().equals(ar.getArtifact().getExtension())
-                        && current.getClassifier().equals(ar.getArtifact().getClassifier())) {
-                    return true;
-                }
-            }
-            return false;
+            return true;
         }
     }
 
diff --git a/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java
index 7ce93bdbdcc..55e772b8f6e 100644
--- a/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java
+++ b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java
@@ -201,7 +201,7 @@ public class MavenResolverTest {
 
             // now, org.eclipse.aether.RepositorySystem can be obtained
             RepositorySystem repositorySystem
-                    = downloader.configureRepositorySystem(registry, systemProperties, localSettingsSecurity);
+                    = downloader.configureRepositorySystem(registry, systemProperties, localSettingsSecurity, false);
 
             Settings settings = downloader.mavenConfiguration(registry, repositorySystem,
                     systemProperties, localSettings);