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);