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/07/30 08:56:18 UTC

[camel] branch verbose created (now 7ae4136e535)

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

davsclaus pushed a change to branch verbose
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 7ae4136e535 CAMEL-19588: camel-jbang - Starting via jbang --verbose should output more details on startup

This branch includes the following new commits:

     new 7ae4136e535 CAMEL-19588: camel-jbang - Starting via jbang --verbose should output more details on startup

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel] 01/01: CAMEL-19588: camel-jbang - Starting via jbang --verbose should output more details on startup

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7ae4136e535548727c7a1864e3b16c2c014d1aa6
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Jul 30 10:56:05 2023 +0200

    CAMEL-19588: camel-jbang - Starting via jbang --verbose should output more details on startup
---
 .../apache/camel/dsl/jbang/core/commands/Run.java  |  4 ++
 .../java/org/apache/camel/main/KameletMain.java    |  4 ++
 .../camel/main/download/DownloadThreadPool.java    | 12 +++++-
 .../main/download/MavenDependencyDownloader.java   | 48 ++++++++++++++++++----
 4 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index f5c806d4765..309fc9efe3d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -228,6 +228,9 @@ public class Run extends CamelCommand {
     @Option(names = { "--code" }, description = "Run the given string as Java DSL route")
     String code;
 
+    @Option(names = { "--verbose" }, description = "Verbose output of startup activity (dependency resolution and downloading")
+    boolean verbose;
+
     public Run(CamelJBangMain main) {
         super(main);
     }
@@ -377,6 +380,7 @@ public class Run extends CamelCommand {
         writeSetting(main, profileProperties, "camel.jbang.repos", repos);
         writeSetting(main, profileProperties, "camel.jbang.health", health ? "true" : "false");
         writeSetting(main, profileProperties, "camel.jbang.console", console ? "true" : "false");
+        writeSetting(main, profileProperties, "camel.jbang.verbose", verbose ? "true" : "false");
         writeSetting(main, profileProperties, "camel.jbang.backlogTracing", "true");
         // the runtime version of Camel is what is loaded via the catalog
         writeSetting(main, profileProperties, "camel.jbang.camel-version", new DefaultCamelCatalog().getCatalogVersion());
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 40d69c36e58..14d2f4cc50b 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
@@ -101,6 +101,7 @@ public class KameletMain extends MainCommandLineSupport {
     private boolean download = true;
     private String repos;
     private boolean fresh;
+    private boolean verbose;
     private String mavenSettings;
     private String mavenSettingsSecurity;
     private boolean stub;
@@ -334,6 +335,8 @@ public class KameletMain extends MainCommandLineSupport {
 
     @Override
     protected CamelContext createCamelContext() {
+        this.verbose = "true".equals(getInitialProperties().get("camel.jbang.verbose"));
+
         // do not build/init camel context yet
         DefaultCamelContext answer = new DefaultCamelContext(false);
         if (download) {
@@ -348,6 +351,7 @@ public class KameletMain extends MainCommandLineSupport {
             downloader.setKnownReposResolver(known);
             downloader.setClassLoader(dynamicCL);
             downloader.setCamelContext(answer);
+            downloader.setVerbose(verbose);
             downloader.setRepos(repos);
             downloader.setFresh(fresh);
             downloader.setMavenSettings(mavenSettings);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
index 0a29bf8b101..b29cee4831c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
@@ -38,6 +38,7 @@ class DownloadThreadPool extends ServiceSupport implements CamelContextAware {
     private final MavenDependencyDownloader downloader;
     private CamelContext camelContext;
     private volatile ExecutorService executorService;
+    private boolean verbose;
 
     public DownloadThreadPool(MavenDependencyDownloader downloader) {
         this.downloader = downloader;
@@ -53,6 +54,14 @@ class DownloadThreadPool extends ServiceSupport implements CamelContextAware {
         this.camelContext = camelContext;
     }
 
+    public boolean isVerbose() {
+        return verbose;
+    }
+
+    public void setVerbose(boolean verbose) {
+        this.verbose = verbose;
+    }
+
     public void download(Logger log, Runnable task, String gav) {
         Future<?> future = executorService.submit(task);
         awaitCompletion(log, future, gav);
@@ -89,7 +98,7 @@ class DownloadThreadPool extends ServiceSupport implements CamelContextAware {
             long taken = watch.taken();
             String msg = "Resolved: " + gav + " (took: "
                          + TimeUtils.printDuration(taken, true) + ")";
-            if (taken > 2000) {
+            if (verbose || taken > 2000) {
                 // slow resolving then log
                 log.info(msg);
             } else {
@@ -105,6 +114,7 @@ class DownloadThreadPool extends ServiceSupport implements CamelContextAware {
         } else {
             executorService = Executors.newCachedThreadPool();
         }
+        downloader.setVerbose(verbose);
     }
 
     @Override
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 164701bdb20..595c903953e 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
@@ -62,6 +62,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
 
     private String[] bootClasspath;
     private DownloadThreadPool threadPool;
+    private boolean verbose;
     private ClassLoader classLoader;
     private CamelContext camelContext;
     private final Set<DownloadListener> downloadListeners = new LinkedHashSet<>();
@@ -98,6 +99,14 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         this.classLoader = classLoader;
     }
 
+    public boolean isVerbose() {
+        return verbose;
+    }
+
+    public void setVerbose(boolean verbose) {
+        this.verbose = verbose;
+    }
+
     public KnownReposResolver getKnownReposResolver() {
         return knownReposResolver;
     }
@@ -211,7 +220,11 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
 
         String gav = groupId + ":" + artifactId + ":" + version;
         threadPool.download(LOG, () -> {
-            LOG.debug("Downloading: {}", gav);
+            if (verbose) {
+                LOG.info("Downloading: {}", gav);
+            } else {
+                LOG.debug("Downloading: {}", gav);
+            }
             List<String> deps = List.of(gav);
 
             // include Apache snapshot to make it easy to use upcoming releases
@@ -230,7 +243,11 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
             List<MavenArtifact> artifacts = resolveDependenciesViaAether(deps, extraRepositories,
                     transitively, useApacheSnaphots);
             List<File> files = new ArrayList<>();
-            LOG.debug("Resolved {} -> [{}]", gav, artifacts);
+            if (verbose) {
+                LOG.info("Resolved {} -> [{}]", gav, artifacts);
+            } else {
+                LOG.debug("Resolved {} -> [{}]", gav, artifacts);
+            }
 
             for (MavenArtifact a : artifacts) {
                 File file = a.getFile();
@@ -242,7 +259,11 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
                         ddc.addFile(file);
                     }
                     files.add(file);
-                    LOG.trace("Added classpath: {}", a.getGav());
+                    if (verbose) {
+                        LOG.info("Added classpath: {}", a.getGav());
+                    } else {
+                        LOG.debug("Added classpath: {}", a.getGav());
+                    }
                 }
             }
 
@@ -271,14 +292,22 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
     @Override
     public MavenArtifact downloadArtifact(String groupId, String artifactId, String version) {
         String gav = groupId + ":" + artifactId + ":" + version;
-        LOG.debug("DownloadingArtifact: {}", gav);
+        if (verbose) {
+            LOG.info("DownloadingArtifact: {}", gav);
+        } else {
+            LOG.debug("DownloadingArtifact: {}", gav);
+        }
         List<String> deps = List.of(gav);
 
         // include Apache snapshot to make it easy to use upcoming releases
         boolean useApacheSnaphots = "org.apache.camel".equals(groupId) && version.contains("SNAPSHOT");
 
         List<MavenArtifact> artifacts = resolveDependenciesViaAether(deps, null, false, useApacheSnaphots);
-        LOG.debug("Resolved {} -> [{}]", gav, artifacts);
+        if (verbose) {
+            LOG.info("Resolved {} -> [{}]", gav, artifacts);
+        } else {
+            LOG.debug("Resolved {} -> [{}]", gav, artifacts);
+        }
 
         if (artifacts.size() == 1) {
             return artifacts.get(0);
@@ -292,7 +321,11 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
             String groupId, String artifactId,
             String minimumVersion, String repo) {
         String gav = groupId + ":" + artifactId;
-        LOG.debug("DownloadAvailableVersions: {}", gav);
+        if (verbose) {
+            LOG.info("DownloadAvailableVersions: {}", gav);
+        } else {
+            LOG.debug("DownloadAvailableVersions: {}", gav);
+        }
 
         List<String[]> answer = new ArrayList<>();
 
@@ -419,7 +452,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
                     }
                     repositories.add(url.toExternalForm());
                 } catch (MalformedURLException e) {
-                    LOG.warn("Can't use {} URL: {}. Skipping.", repo, e.getMessage(), e);
+                    LOG.warn("Cannot use {} URL: {}. Skipping.", repo, e.getMessage(), e);
                 }
             }
         }
@@ -432,6 +465,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
             classLoader = camelContext.getApplicationContextClassLoader();
         }
         threadPool = new DownloadThreadPool(this);
+        threadPool.setVerbose(verbose);
         threadPool.setCamelContext(camelContext);
         ServiceHelper.buildService(threadPool);