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 2022/06/15 09:00:47 UTC
[camel] 02/03: CAMEL-18194: camel-jbang - Refactor to make download code as single service.
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
commit 8b8e7b459691269bbc8a35b744424a2911cfb45e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 15 09:52:49 2022 +0200
CAMEL-18194: camel-jbang - Refactor to make download code as single service.
---
.../camel/dsl/jbang/core/commands/BaseExport.java | 2 +-
.../dsl/jbang/core/commands/ExportCamelMain.java | 2 +-
.../dsl/jbang/core/commands/ExportQuarkus.java | 2 +-
.../dsl/jbang/core/commands/ExportSpringBoot.java | 2 +-
.../apache/camel/dsl/jbang/core/commands/Run.java | 2 +-
.../java/org/apache/camel/main/KameletMain.java | 39 ++++++----
.../download/CommandLineDependencyDownloader.java | 28 +++-----
.../camel/main/download/DependencyDownloader.java | 17 +++++
.../DependencyDownloaderClassResolver.java | 13 ++--
.../DependencyDownloaderComponentResolver.java | 29 +++-----
.../DependencyDownloaderDataFormatResolver.java | 27 ++-----
.../main/download/DependencyDownloaderKamelet.java | 31 +++-----
.../DependencyDownloaderLanguageResolver.java | 25 ++-----
...ependencyDownloaderPropertyBindingListener.java | 13 ++--
.../DependencyDownloaderResourceLoader.java | 15 ++--
.../download/DependencyDownloaderRoutesLoader.java | 14 ++--
.../download/DependencyDownloaderStrategy.java | 12 ++--
.../camel/main/download/DownloadThreadPool.java | 30 +++++++-
...rHelper.java => MavenDependencyDownloader.java} | 83 +++++++++++++++++-----
...dencyUtil.java => MavenDependencyResolver.java} | 17 ++---
...lTest.java => MavenDependencyResolverTest.java} | 6 +-
21 files changed, 215 insertions(+), 194 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
index 7a8f6bae46b..36e8753c251 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/BaseExport.java
@@ -36,7 +36,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.camel.dsl.jbang.core.common.RuntimeUtil;
-import org.apache.camel.main.MavenGav;
+import org.apache.camel.main.download.MavenGav;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.OrderedProperties;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index f1ee6bb11ab..781d7496b0c 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -24,7 +24,7 @@ import java.util.Set;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
-import org.apache.camel.main.MavenGav;
+import org.apache.camel.main.download.MavenGav;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.OrderedProperties;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 99aeb442064..77a0655792d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -22,7 +22,7 @@ import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Set;
-import org.apache.camel.main.MavenGav;
+import org.apache.camel.main.download.MavenGav;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.OrderedProperties;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index a07371c3e74..5009ef15e7e 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -25,7 +25,7 @@ import java.util.Set;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
-import org.apache.camel.main.MavenGav;
+import org.apache.camel.main.download.MavenGav;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.OrderedProperties;
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 317eabc84c6..7357e8ef598 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
@@ -51,8 +51,8 @@ import org.apache.camel.CamelContext;
import org.apache.camel.dsl.jbang.core.common.RuntimeUtil;
import org.apache.camel.generator.openapi.RestDslGenerator;
import org.apache.camel.impl.lw.LightweightCamelContext;
-import org.apache.camel.main.DownloadListener;
import org.apache.camel.main.KameletMain;
+import org.apache.camel.main.download.DownloadListener;
import org.apache.camel.support.ResourceHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
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 88fd419a717..b46193c93d2 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
@@ -39,6 +39,7 @@ import org.apache.camel.main.download.DependencyDownloaderRoutesLoader;
import org.apache.camel.main.download.DependencyDownloaderStrategy;
import org.apache.camel.main.download.DownloadListener;
import org.apache.camel.main.download.KnownDependenciesResolver;
+import org.apache.camel.main.download.MavenDependencyDownloader;
import org.apache.camel.main.http.VertxHttpServer;
import org.apache.camel.main.injection.AnnotationDependencyInjection;
import org.apache.camel.main.util.ExtraFilesClassLoader;
@@ -263,17 +264,25 @@ public class KameletMain extends MainCommandLineSupport {
answer.setLogJvmUptime(true);
if (download) {
answer.setApplicationContextClassLoader(createApplicationContextClassLoader());
+
+ MavenDependencyDownloader downloader = new MavenDependencyDownloader();
+ downloader.setCamelContext(answer);
+ downloader.setRepos(repos);
+ downloader.setFresh(fresh);
+ downloader.setDownloadListener(downloadListener);
+
+ // register as extension
+ try {
+ answer.adapt(ExtendedCamelContext.class).addService(downloader);
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeException(e);
+ }
}
if (stub) {
// turn off auto-wiring when running in stub mode
mainConfigurationProperties.setAutowiredEnabled(false);
}
- // register download listener
- if (downloadListener != null) {
- answer.adapt(ExtendedCamelContext.class).setExtension(DownloadListener.class, downloadListener);
- }
-
String info = startupInfo();
if (info != null) {
LOG.info(info);
@@ -328,22 +337,22 @@ public class KameletMain extends MainCommandLineSupport {
// dependencies from CLI
Object dependencies = getInitialProperties().get("camel.jbang.dependencies");
if (dependencies != null) {
- answer.addService(new CommandLineDependencyDownloader(dependencies.toString(), repos, fresh));
+ answer.addService(new CommandLineDependencyDownloader(answer, dependencies.toString()));
}
KnownDependenciesResolver known = new KnownDependenciesResolver(answer);
known.loadKnownDependencies();
DependencyDownloaderPropertyBindingListener listener
- = new DependencyDownloaderPropertyBindingListener(answer, known, repos, fresh);
+ = new DependencyDownloaderPropertyBindingListener(answer, known);
answer.getRegistry().bind(DependencyDownloaderPropertyBindingListener.class.getName(), listener);
answer.getRegistry().bind(DependencyDownloaderStrategy.class.getName(),
- new DependencyDownloaderStrategy(answer, repos, fresh));
- answer.setClassResolver(new DependencyDownloaderClassResolver(answer, known, repos, fresh));
- answer.setComponentResolver(new DependencyDownloaderComponentResolver(answer, repos, fresh, stub));
- answer.setDataFormatResolver(new DependencyDownloaderDataFormatResolver(answer, repos, fresh));
- answer.setLanguageResolver(new DependencyDownloaderLanguageResolver(answer, repos, fresh));
- answer.setResourceLoader(new DependencyDownloaderResourceLoader(answer, repos, fresh));
- answer.addService(new DependencyDownloaderKamelet(answer, repos, fresh));
+ new DependencyDownloaderStrategy(answer));
+ answer.setClassResolver(new DependencyDownloaderClassResolver(answer, known));
+ answer.setComponentResolver(new DependencyDownloaderComponentResolver(answer, stub));
+ answer.setDataFormatResolver(new DependencyDownloaderDataFormatResolver(answer));
+ answer.setLanguageResolver(new DependencyDownloaderLanguageResolver(answer));
+ answer.setResourceLoader(new DependencyDownloaderResourceLoader(answer));
+ answer.addService(new DependencyDownloaderKamelet(answer));
} catch (Exception e) {
throw RuntimeCamelException.wrapRuntimeException(e);
}
@@ -379,7 +388,7 @@ public class KameletMain extends MainCommandLineSupport {
if (download) {
// use resolvers that can auto downloaded
camelContext.adapt(ExtendedCamelContext.class)
- .setRoutesLoader(new DependencyDownloaderRoutesLoader(configure(), repos, fresh));
+ .setRoutesLoader(new DependencyDownloaderRoutesLoader(camelContext, configure()));
} else {
super.configureRoutesLoader(camelContext);
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
index e6d256d7244..b2209da6eec 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
@@ -20,30 +20,18 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.support.service.ServiceSupport;
-public class CommandLineDependencyDownloader extends ServiceSupport implements CamelContextAware {
+public class CommandLineDependencyDownloader extends ServiceSupport {
- private CamelContext camelContext;
+ private final CamelContext camelContext;
+ private final DependencyDownloader downloader;
private final String dependencies;
- private final String repos;
- private final boolean fresh;
- public CommandLineDependencyDownloader(String dependencies, String repos, boolean fresh) {
- this.dependencies = dependencies;
- this.repos = repos;
- this.fresh = fresh;
- }
-
- @Override
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @Override
- public void setCamelContext(CamelContext camelContext) {
+ public CommandLineDependencyDownloader(CamelContext camelContext, String dependencies) {
this.camelContext = camelContext;
+ this.dependencies = dependencies;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
@@ -67,7 +55,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport implements C
if (!gavs.isEmpty()) {
for (String gav : gavs) {
MavenGav mg = MavenGav.parseGav(camelContext, gav);
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, mg.getGroupId(), mg.getArtifactId(),
+ downloader.downloadDependency(mg.getGroupId(), mg.getArtifactId(),
mg.getVersion());
}
}
@@ -76,7 +64,7 @@ public class CommandLineDependencyDownloader extends ServiceSupport implements C
private boolean isValidGav(String gav) {
MavenGav mg = MavenGav.parseGav(camelContext, gav);
boolean exists
- = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
+ = downloader.alreadyOnClasspath(mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
// valid if not already on classpath
return !exists;
}
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 e5ea11fc3a2..5823a85dbf0 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
@@ -24,6 +24,13 @@ import org.apache.camel.StaticService;
*/
public interface DependencyDownloader extends CamelContextAware, StaticService {
+ DownloadListener getDownloadListener();
+
+ /**
+ * Sets a listener to capture download activity
+ */
+ void setDownloadListener(DownloadListener downloadListener);
+
String getRepos();
/**
@@ -47,4 +54,14 @@ public interface DependencyDownloader extends CamelContextAware, StaticService {
*/
void downloadDependency(String groupId, String artifactId, String version);
+ /**
+ * Checks whether the dependency is already on the classpath
+ *
+ * @param groupId maven group id
+ * @param artifactId maven artifact id
+ * @param version maven version
+ * @return true if already on classpath, false if not.
+ */
+ boolean alreadyOnClasspath(String groupId, String artifactId, String version);
+
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
index 5d675ebd973..fb5a9473802 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
@@ -23,16 +23,13 @@ import org.apache.camel.util.ObjectHelper;
public final class DependencyDownloaderClassResolver extends DefaultClassResolver {
private final KnownDependenciesResolver knownDependenciesResolver;
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
public DependencyDownloaderClassResolver(CamelContext camelContext,
- KnownDependenciesResolver knownDependenciesResolver,
- String repos, boolean fresh) {
+ KnownDependenciesResolver knownDependenciesResolver) {
super(camelContext);
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
this.knownDependenciesResolver = knownDependenciesResolver;
- this.repos = repos;
- this.fresh = fresh;
}
@Override
@@ -48,9 +45,9 @@ public final class DependencyDownloaderClassResolver extends DefaultClassResolve
// okay maybe the class is from a known GAV that we can download first and then load the class
MavenGav gav = knownDependenciesResolver.mavenGavForClass(name);
if (gav != null) {
- if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), gav.getGroupId(), gav.getArtifactId(),
+ if (!downloader.alreadyOnClasspath(gav.getGroupId(), gav.getArtifactId(),
gav.getVersion())) {
- DownloaderHelper.downloadDependency(getCamelContext(), repos, fresh, gav.getGroupId(), gav.getArtifactId(),
+ downloader.downloadDependency(gav.getGroupId(), gav.getArtifactId(),
gav.getVersion());
}
try {
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
index 4c490cb972e..b28b1791d61 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
@@ -17,7 +17,6 @@
package org.apache.camel.main.download;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.Component;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
@@ -29,39 +28,27 @@ import org.apache.camel.tooling.model.ComponentModel;
/**
* Auto downloaded needed JARs when resolving components.
*/
-public final class DependencyDownloaderComponentResolver extends DefaultComponentResolver implements CamelContextAware {
+public final class DependencyDownloaderComponentResolver extends DefaultComponentResolver {
private static final String ACCEPTED_STUB_NAMES = "stub,bean,class,kamelet,rest,rest-api,platform-http,vertx-http";
private final CamelCatalog catalog = new DefaultCamelCatalog();
- private CamelContext camelContext;
- private final String repos;
- private final boolean fresh;
- private boolean stub;
+ private final CamelContext camelContext;
+ private final DependencyDownloader downloader;
+ private final boolean stub;
- public DependencyDownloaderComponentResolver(CamelContext camelContext, String repos, boolean fresh, boolean stub) {
+ public DependencyDownloaderComponentResolver(CamelContext camelContext, boolean stub) {
this.camelContext = camelContext;
- this.repos = repos;
- this.fresh = fresh;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
this.stub = stub;
}
- @Override
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @Override
- public void setCamelContext(CamelContext camelContext) {
- this.camelContext = camelContext;
- }
-
@Override
public Component resolveComponent(String name, CamelContext context) {
ComponentModel model = catalog.componentModel(name);
- if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getGroupId(), model.getArtifactId(),
+ if (model != null && !downloader.alreadyOnClasspath(model.getGroupId(), model.getArtifactId(),
model.getVersion())) {
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, model.getGroupId(), model.getArtifactId(),
+ downloader.downloadDependency(model.getGroupId(), model.getArtifactId(),
model.getVersion());
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
index 6443f36a9aa..0a84d34fb85 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
@@ -17,7 +17,6 @@
package org.apache.camel.main.download;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.impl.engine.DefaultDataFormatResolver;
@@ -27,35 +26,23 @@ import org.apache.camel.tooling.model.DataFormatModel;
/**
* Auto downloaded needed JARs when resolving data formats.
*/
-public final class DependencyDownloaderDataFormatResolver extends DefaultDataFormatResolver implements CamelContextAware {
+public final class DependencyDownloaderDataFormatResolver extends DefaultDataFormatResolver {
private final CamelCatalog catalog = new DefaultCamelCatalog();
- private CamelContext camelContext;
- private final String repos;
- private final boolean fresh;
+ private final CamelContext camelContext;
+ private final DependencyDownloader downloader;
- public DependencyDownloaderDataFormatResolver(CamelContext camelContext, String repos, boolean fresh) {
- this.camelContext = camelContext;
- this.repos = repos;
- this.fresh = fresh;
- }
-
- @Override
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @Override
- public void setCamelContext(CamelContext camelContext) {
+ public DependencyDownloaderDataFormatResolver(CamelContext camelContext) {
this.camelContext = camelContext;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
public DataFormat createDataFormat(String name, CamelContext context) {
DataFormatModel model = catalog.dataFormatModel(name);
- if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getGroupId(), model.getArtifactId(),
+ if (model != null && !downloader.alreadyOnClasspath(model.getGroupId(), model.getArtifactId(),
model.getVersion())) {
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, model.getGroupId(), model.getArtifactId(),
+ downloader.downloadDependency(model.getGroupId(), model.getArtifactId(),
model.getVersion());
}
return super.createDataFormat(name, context);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
index 7513a69f3d7..b97ef3b1a67 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
@@ -50,9 +50,9 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
private final KameletDependencyDownloader downloader;
private CamelContext camelContext;
- public DependencyDownloaderKamelet(CamelContext camelContext, String repos, boolean fresh) {
+ public DependencyDownloaderKamelet(CamelContext camelContext) {
this.camelContext = camelContext;
- this.downloader = new KameletDependencyDownloader("yaml", repos, fresh);
+ this.downloader = new KameletDependencyDownloader(camelContext, "yaml");
}
@Override
@@ -103,28 +103,17 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
/**
* To automatic downloaded dependencies that Kamelets requires.
*/
- private static class KameletDependencyDownloader extends YamlRoutesBuilderLoaderSupport implements CamelContextAware {
+ private static class KameletDependencyDownloader extends YamlRoutesBuilderLoaderSupport {
private static final Logger LOG = LoggerFactory.getLogger(KameletDependencyDownloader.class);
- private CamelContext camelContext;
+ private final CamelContext camelContext;
+ private final DependencyDownloader downloader;
private final Set<String> downloaded = new HashSet<>();
- private final String repos;
- private final boolean fresh;
- public KameletDependencyDownloader(String extension, String repos, boolean fresh) {
+ public KameletDependencyDownloader(CamelContext camelContext, String extension) {
super(extension);
- this.repos = repos;
- this.fresh = fresh;
- }
-
- @Override
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @Override
- public void setCamelContext(CamelContext camelContext) {
this.camelContext = camelContext;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
@@ -173,8 +162,7 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
if (!gavs.isEmpty()) {
for (String gav : gavs) {
MavenGav mg = MavenGav.parseGav(camelContext, gav);
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, mg.getGroupId(), mg.getArtifactId(),
- mg.getVersion());
+ downloader.downloadDependency(mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
downloaded.add(gav);
}
}
@@ -192,8 +180,7 @@ public final class DependencyDownloaderKamelet extends ServiceSupport
}
MavenGav mg = MavenGav.parseGav(camelContext, gav);
- boolean exists
- = DownloaderHelper.alreadyOnClasspath(camelContext, mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
+ boolean exists = downloader.alreadyOnClasspath(mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
// valid if not already on classpath
return !exists;
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
index 4dc43519a65..ba39831912f 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
@@ -17,7 +17,6 @@
package org.apache.camel.main.download;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.impl.engine.DefaultLanguageResolver;
@@ -27,35 +26,23 @@ import org.apache.camel.tooling.model.LanguageModel;
/**
* Auto downloaded needed JARs when resolving languages.
*/
-public final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver implements CamelContextAware {
+public final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver {
private final CamelCatalog catalog = new DefaultCamelCatalog();
private CamelContext camelContext;
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
- public DependencyDownloaderLanguageResolver(CamelContext camelContext, String repos, boolean fresh) {
- this.camelContext = camelContext;
- this.repos = repos;
- this.fresh = fresh;
- }
-
- @Override
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @Override
- public void setCamelContext(CamelContext camelContext) {
+ public DependencyDownloaderLanguageResolver(CamelContext camelContext) {
this.camelContext = camelContext;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
public Language resolveLanguage(String name, CamelContext context) {
LanguageModel model = catalog.languageModel(name);
- if (model != null && !DownloaderHelper.alreadyOnClasspath(camelContext, model.getGroupId(), model.getArtifactId(),
+ if (model != null && !downloader.alreadyOnClasspath(model.getGroupId(), model.getArtifactId(),
model.getVersion())) {
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, model.getGroupId(), model.getArtifactId(),
+ downloader.downloadDependency(model.getGroupId(), model.getArtifactId(),
model.getVersion());
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
index cb5ad91e6fb..86949910f17 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
@@ -23,16 +23,13 @@ public class DependencyDownloaderPropertyBindingListener implements PropertyBind
private final CamelContext camelContext;
private final KnownDependenciesResolver knownDependenciesResolver;
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
public DependencyDownloaderPropertyBindingListener(CamelContext camelContext,
- KnownDependenciesResolver knownDependenciesResolver,
- String repos, boolean fresh) {
+ KnownDependenciesResolver knownDependenciesResolver) {
this.camelContext = camelContext;
this.knownDependenciesResolver = knownDependenciesResolver;
- this.repos = repos;
- this.fresh = fresh;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
@@ -41,9 +38,9 @@ public class DependencyDownloaderPropertyBindingListener implements PropertyBind
String s = (String) value;
MavenGav gav = knownDependenciesResolver.mavenGavForClass(s);
if (gav != null) {
- if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getGroupId(), gav.getArtifactId(),
+ if (!downloader.alreadyOnClasspath(gav.getGroupId(), gav.getArtifactId(),
gav.getVersion())) {
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, gav.getGroupId(), gav.getArtifactId(),
+ downloader.downloadDependency(gav.getGroupId(), gav.getArtifactId(),
gav.getVersion());
}
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
index 53660c7a75a..ca9a133c0be 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.main.download;
import org.apache.camel.CamelContext;
@@ -24,13 +23,11 @@ import org.apache.camel.util.StringHelper;
public class DependencyDownloaderResourceLoader extends DefaultResourceLoader {
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
- public DependencyDownloaderResourceLoader(CamelContext camelContext, String repos, boolean fresh) {
+ public DependencyDownloaderResourceLoader(CamelContext camelContext) {
super(camelContext);
- this.repos = repos;
- this.fresh = fresh;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
@@ -39,10 +36,10 @@ public class DependencyDownloaderResourceLoader extends DefaultResourceLoader {
if ("github".equals(scheme) || "gist".equals(scheme)) {
if (!hasResourceResolver(scheme)) {
// need to download github resolver
- if (!DownloaderHelper.alreadyOnClasspath(
- getCamelContext(), "org.apache.camel", "camel-resourceresolver-github",
+ if (!downloader.alreadyOnClasspath(
+ "org.apache.camel", "camel-resourceresolver-github",
getCamelContext().getVersion())) {
- DownloaderHelper.downloadDependency(getCamelContext(), repos, fresh, "org.apache.camel",
+ downloader.downloadDependency("org.apache.camel",
"camel-resourceresolver-github",
getCamelContext().getVersion());
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
index 832b1d75028..062688df12c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.main.download;
+import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.main.MainConfigurationProperties;
@@ -30,13 +31,12 @@ import org.apache.camel.support.service.ServiceHelper;
*/
public class DependencyDownloaderRoutesLoader extends MainRoutesLoader {
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
- public DependencyDownloaderRoutesLoader(MainConfigurationProperties configuration, String repos, boolean fresh) {
+ public DependencyDownloaderRoutesLoader(CamelContext camelContext, MainConfigurationProperties configuration) {
super(configuration);
- this.repos = repos;
- this.fresh = fresh;
+ setCamelContext(camelContext);
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
@@ -84,9 +84,9 @@ public class DependencyDownloaderRoutesLoader extends MainRoutesLoader {
}
private void downloadLoader(String artifactId) {
- if (!DownloaderHelper.alreadyOnClasspath(getCamelContext(), "org.apache.camel", artifactId,
+ if (!downloader.alreadyOnClasspath("org.apache.camel", artifactId,
getCamelContext().getVersion())) {
- DownloaderHelper.downloadDependency(getCamelContext(), repos, fresh, "org.apache.camel", artifactId,
+ downloader.downloadDependency("org.apache.camel", artifactId,
getCamelContext().getVersion());
}
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
index 17e22c9f22e..aec7bf63c67 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
@@ -22,20 +22,18 @@ import org.apache.camel.spi.DependencyStrategy;
public class DependencyDownloaderStrategy implements DependencyStrategy {
private final CamelContext camelContext;
- private final String repos;
- private final boolean fresh;
+ private final DependencyDownloader downloader;
- public DependencyDownloaderStrategy(CamelContext camelContext, String repos, boolean fresh) {
+ public DependencyDownloaderStrategy(CamelContext camelContext) {
this.camelContext = camelContext;
- this.repos = repos;
- this.fresh = fresh;
+ this.downloader = camelContext.hasService(DependencyDownloader.class);
}
@Override
public void onDependency(String dependency) {
MavenGav gav = MavenGav.parseGav(camelContext, dependency);
- if (!DownloaderHelper.alreadyOnClasspath(camelContext, gav.getGroupId(), gav.getArtifactId(), gav.getVersion())) {
- DownloaderHelper.downloadDependency(camelContext, repos, fresh, gav.getGroupId(), gav.getArtifactId(),
+ if (!downloader.alreadyOnClasspath(gav.getGroupId(), gav.getArtifactId(), gav.getVersion())) {
+ downloader.downloadDependency(gav.getGroupId(), gav.getArtifactId(),
gav.getVersion());
}
}
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 fd763179a39..99fc6f4c165 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
@@ -17,11 +17,13 @@
package org.apache.camel.main.download;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.StopWatch;
import org.apache.camel.util.TimeUtils;
import org.slf4j.Logger;
@@ -29,9 +31,20 @@ import org.slf4j.Logger;
/**
* A basic thread pool that run each download task in their own thread, and LOG download activity during download.
*/
-class DownloadThreadPool {
+class DownloadThreadPool extends ServiceSupport implements CamelContextAware {
- private final ExecutorService executorService = Executors.newCachedThreadPool();
+ private CamelContext camelContext;
+ private volatile ExecutorService executorService;
+
+ @Override
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
+
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
public void download(Logger log, Runnable task, String gav) {
Future<?> future = executorService.submit(task);
@@ -68,4 +81,15 @@ class DownloadThreadPool {
}
}
+ @Override
+ protected void doBuild() throws Exception {
+ executorService = camelContext.getExecutorServiceManager().newCachedThreadPool(this, "MavenDownload");
+ }
+
+ @Override
+ protected void doShutdown() throws Exception {
+ if (executorService != null) {
+ camelContext.getExecutorServiceManager().shutdown(executorService);
+ }
+ }
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
similarity index 66%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index c88c3f673b7..e409e735e2a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -25,33 +25,70 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.camel.CamelContext;
+import org.apache.camel.support.service.ServiceHelper;
+import org.apache.camel.support.service.ServiceSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * For downloading dependencies.
- */
-public final class DownloaderHelper {
+public class MavenDependencyDownloader extends ServiceSupport implements DependencyDownloader {
public static final String MAVEN_CENTRAL_REPO = "https://repo1.maven.org/maven2/";
public static final String APACHE_SNAPSHOT_REPO = "https://repository.apache.org/snapshots";
- private static final Logger LOG = LoggerFactory.getLogger(DownloaderHelper.class);
+ private static final Logger LOG = LoggerFactory.getLogger(MavenDependencyDownloader.class);
private static final String CP = System.getProperty("java.class.path");
- private static final DownloadThreadPool DOWNLOAD_THREAD_POOL = new DownloadThreadPool();
+ private DownloadThreadPool threadPool;
+ private CamelContext camelContext;
+ private DownloadListener downloadListener;
+ private String repos;
+ private boolean fresh;
- private DownloaderHelper() {
+ @Override
+ public CamelContext getCamelContext() {
+ return camelContext;
}
- public static void downloadDependency(
- CamelContext camelContext, String repos, boolean fresh,
- String groupId, String artifactId, String version) {
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+ @Override
+ public DownloadListener getDownloadListener() {
+ return downloadListener;
+ }
+
+ @Override
+ public void setDownloadListener(DownloadListener downloadListener) {
+ this.downloadListener = downloadListener;
+ }
+
+ @Override
+ public String getRepos() {
+ return repos;
+ }
+
+ @Override
+ public void setRepos(String repos) {
+ this.repos = repos;
+ }
+
+ @Override
+ public boolean isFresh() {
+ return fresh;
+ }
+
+ @Override
+ public void setFresh(boolean fresh) {
+ this.fresh = fresh;
+ }
+
+ @Override
+ public void downloadDependency(String groupId, String artifactId, String version) {
// trigger listener
- DownloadListener listener = camelContext.getExtension(DownloadListener.class);
- if (listener != null) {
- listener.onDownloadDependency(groupId, artifactId, version);
+ if (downloadListener != null) {
+ downloadListener.onDownloadDependency(groupId, artifactId, version);
}
// when running jbang directly then the CP has some existing camel components
@@ -70,7 +107,7 @@ public final class DownloaderHelper {
}
String gav = groupId + ":" + artifactId + ":" + version;
- DOWNLOAD_THREAD_POOL.download(LOG, () -> {
+ threadPool.download(LOG, () -> {
LOG.debug("Downloading: {}", gav);
List<String> deps = List.of(gav);
List<String> mavenRepos = new ArrayList<>();
@@ -86,7 +123,8 @@ public final class DownloaderHelper {
mavenRepos.add(APACHE_SNAPSHOT_REPO);
}
- List<MavenArtifact> artifacts = DependencyUtil.resolveDependenciesViaAether(deps, mavenRepos, false, fresh, true);
+ List<MavenArtifact> artifacts
+ = MavenDependencyResolver.resolveDependenciesViaAether(deps, mavenRepos, false, fresh, true);
LOG.debug("Resolved {} -> [{}]", gav, artifacts);
DependencyDownloaderClassLoader classLoader
@@ -94,7 +132,7 @@ public final class DownloaderHelper {
for (MavenArtifact a : artifacts) {
File file = a.getFile();
// only add to classpath if not already present
- if (!alreadyOnClasspath(camelContext, a.getGav().getGroupId(), a.getGav().getArtifactId(),
+ if (!alreadyOnClasspath(a.getGav().getGroupId(), a.getGav().getArtifactId(),
a.getGav().getVersion())) {
classLoader.addFile(file);
LOG.trace("Added classpath: {}", a.getGav());
@@ -103,7 +141,7 @@ public final class DownloaderHelper {
}, gav);
}
- public static boolean alreadyOnClasspath(CamelContext camelContext, String groupId, String artifactId, String version) {
+ public boolean alreadyOnClasspath(String groupId, String artifactId, String version) {
// if no artifact then regard this as okay
if (artifactId == null) {
return true;
@@ -135,4 +173,15 @@ public final class DownloaderHelper {
return false;
}
+ @Override
+ protected void doBuild() throws Exception {
+ threadPool = new DownloadThreadPool();
+ threadPool.setCamelContext(camelContext);
+ ServiceHelper.buildService(threadPool);
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ ServiceHelper.stopAndShutdownService(threadPool);
+ }
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
similarity index 89%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
index 227f5ef51ba..f3a371054ab 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyResolver.java
@@ -34,9 +34,9 @@ import org.jboss.shrinkwrap.resolver.api.maven.MavenStrategyStage;
import org.jboss.shrinkwrap.resolver.api.maven.MavenWorkingSession;
import org.jboss.shrinkwrap.resolver.impl.maven.ConfigurableMavenResolverSystemImpl;
-public final class DependencyUtil {
+public final class MavenDependencyResolver {
- private DependencyUtil() {
+ private MavenDependencyResolver() {
}
public static List<MavenArtifact> resolveDependenciesViaAether(
@@ -52,8 +52,8 @@ public final class DependencyUtil {
for (String repo : customRepos) {
// shrikwrap does not have public API for adding release vs snapshot repos
// we need workaround using lower-level APIs and reflection
- boolean snapshot = repo.equals(DownloaderHelper.APACHE_SNAPSHOT_REPO);
- boolean central = repo.equals(DownloaderHelper.MAVEN_CENTRAL_REPO);
+ boolean snapshot = repo.equals(MavenDependencyDownloader.APACHE_SNAPSHOT_REPO);
+ boolean central = repo.equals(MavenDependencyDownloader.MAVEN_CENTRAL_REPO);
String update = fresh ? RepositoryPolicy.UPDATE_POLICY_ALWAYS : RepositoryPolicy.UPDATE_POLICY_NEVER;
RepositoryPolicy releasePolicy = new RepositoryPolicy(!snapshot, update, null);
RepositoryPolicy snapshotPolicy = new RepositoryPolicy(snapshot, update, null);
@@ -111,12 +111,9 @@ public final class DependencyUtil {
}
public static Path getLocalMavenRepo() {
- return Paths.get((String) System.getProperties()
- .getOrDefault("maven.repo.local",
- System.getProperty("user.home")
- + File.separator + ".m2" + File.separator
- + "repository"))
- .toAbsolutePath();
+ String m2 = System.getProperty("user.home") + File.separator + ".m2" + File.separator + "repository";
+ String dir = System.getProperty("maven.repo.local", m2);
+ return Paths.get(dir).toAbsolutePath();
}
}
diff --git a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
similarity index 84%
rename from dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
rename to dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
index fbae20cafbe..865eea6eb0e 100644
--- a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/DependencyUtilTest.java
+++ b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
@@ -18,17 +18,17 @@ package org.apache.camel.main;
import java.util.List;
-import org.apache.camel.main.download.DependencyUtil;
import org.apache.camel.main.download.MavenArtifact;
+import org.apache.camel.main.download.MavenDependencyResolver;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-public class DependencyUtilTest {
+public class MavenDependencyResolverTest {
@Test
public void testDownload() throws Exception {
List<String> deps = List.of("org.apache.camel:camel-core:3.17.0");
- List<MavenArtifact> answer = DependencyUtil.resolveDependenciesViaAether(deps, null, false, false, true);
+ List<MavenArtifact> answer = MavenDependencyResolver.resolveDependenciesViaAether(deps, null, false, false, true);
Assertions.assertNotNull(answer);
Assertions.assertTrue(answer.size() > 15);
}