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:46 UTC

[camel] 01/03: CAMEL-18194: camel-kamelet-main - Restructure

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 563fc191e29d02d6087f5fbc29fe644332594332
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 15 08:57:26 2022 +0200

    CAMEL-18194: camel-kamelet-main - Restructure
---
 .../java/org/apache/camel/main/KameletMain.java    | 16 ++++++++++++
 .../CommandLineDependencyDownloader.java           |  2 +-
 .../DependencyDownloader.java}                     | 30 +++++++++++++++++-----
 .../DependencyDownloaderClassLoader.java           |  2 +-
 .../DependencyDownloaderClassResolver.java         |  4 +--
 .../DependencyDownloaderComponentResolver.java     |  7 ++---
 .../DependencyDownloaderDataFormatResolver.java    |  4 +--
 .../DependencyDownloaderKamelet.java               |  5 ++--
 .../DependencyDownloaderLanguageResolver.java      |  4 +--
 ...ependencyDownloaderPropertyBindingListener.java |  4 +--
 .../DependencyDownloaderResourceLoader.java        |  4 +--
 .../DependencyDownloaderRoutesLoader.java          |  4 ++-
 .../DependencyDownloaderStrategy.java              |  4 +--
 .../camel/main/{ => download}/DependencyUtil.java  |  4 +--
 .../main/{ => download}/DownloadException.java     |  2 +-
 .../main/{ => download}/DownloadListener.java      |  2 +-
 .../main/{ => download}/DownloadThreadPool.java    |  2 +-
 .../main/{ => download}/DownloaderHelper.java      |  2 +-
 .../{ => download}/KnownDependenciesResolver.java  |  2 +-
 .../camel/main/{ => download}/MavenArtifact.java   |  2 +-
 .../apache/camel/main/{ => download}/MavenGav.java |  2 +-
 .../camel/main/{ => http}/VertxHttpServer.java     |  7 ++++-
 .../AnnotationDependencyInjection.java             |  2 +-
 .../main/{ => util}/CamelJBangSettingsHelper.java  |  2 +-
 .../main/{ => util}/ExtraFilesClassLoader.java     |  4 +--
 .../org/apache/camel/main/DependencyUtilTest.java  |  2 ++
 .../java/org/apache/camel/main/MavenGavTest.java   |  1 +
 27 files changed, 85 insertions(+), 41 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 0c4f53f7400..88fd419a717 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
@@ -26,6 +26,22 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.main.download.CommandLineDependencyDownloader;
+import org.apache.camel.main.download.DependencyDownloaderClassLoader;
+import org.apache.camel.main.download.DependencyDownloaderClassResolver;
+import org.apache.camel.main.download.DependencyDownloaderComponentResolver;
+import org.apache.camel.main.download.DependencyDownloaderDataFormatResolver;
+import org.apache.camel.main.download.DependencyDownloaderKamelet;
+import org.apache.camel.main.download.DependencyDownloaderLanguageResolver;
+import org.apache.camel.main.download.DependencyDownloaderPropertyBindingListener;
+import org.apache.camel.main.download.DependencyDownloaderResourceLoader;
+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.http.VertxHttpServer;
+import org.apache.camel.main.injection.AnnotationDependencyInjection;
+import org.apache.camel.main.util.ExtraFilesClassLoader;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder;
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
index b712d46af34..e6d256d7244 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CommandLineDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/CommandLineDependencyDownloader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
similarity index 51%
copy from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java
copy to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
index 78c60967738..e5ea11fc3a2 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java
@@ -14,21 +14,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
+
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.StaticService;
 
 /**
- * Listener for downloading a dependency (can be downloaded from a local cache)
+ * To download dependencies at runtime.
  */
-public interface DownloadListener {
+public interface DependencyDownloader extends CamelContextAware, StaticService {
+
+    String getRepos();
+
+    /**
+     * Additional maven repositories for download on-demand (Use commas to separate multiple repositories).
+     */
+    void setRepos(String repos);
+
+    boolean isFresh();
 
     /**
-     * Downloads a new dependency
+     * Make sure we use fresh (i.e. non-cached) resources.
      */
-    void onDownloadDependency(String groupId, String artifactId, String version);
+    void setFresh(boolean fresh);
 
     /**
-     * Uses an existing already downloaded dependency
+     * Downloads the dependency
+     *
+     * @param groupId    maven group id
+     * @param artifactId maven artifact id
+     * @param version    maven version
      */
-    void onAlreadyDownloadedDependency(String groupId, String artifactId, String version);
+    void downloadDependency(String groupId, String artifactId, String version);
 
 }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassLoader.java
similarity index 97%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassLoader.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassLoader.java
index 723a976222b..932bf8de9f9 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.io.File;
 import java.net.MalformedURLException;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
similarity index 95%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
index cd3b2f22e0a..5d675ebd973 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderClassResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderClassResolver.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.impl.engine.DefaultClassResolver;
 import org.apache.camel.util.ObjectHelper;
 
-final class DependencyDownloaderClassResolver extends DefaultClassResolver {
+public final class DependencyDownloaderClassResolver extends DefaultClassResolver {
 
     private final KnownDependenciesResolver knownDependenciesResolver;
     private final String repos;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
similarity index 91%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
index 122cea705fb..4c490cb972e 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderComponentResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderComponentResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
@@ -23,12 +23,13 @@ import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.component.platform.http.PlatformHttpComponent;
 import org.apache.camel.impl.engine.DefaultComponentResolver;
+import org.apache.camel.main.http.VertxHttpServer;
 import org.apache.camel.tooling.model.ComponentModel;
 
 /**
  * Auto downloaded needed JARs when resolving components.
  */
-final class DependencyDownloaderComponentResolver extends DefaultComponentResolver implements CamelContextAware {
+public final class DependencyDownloaderComponentResolver extends DefaultComponentResolver implements CamelContextAware {
 
     private static final String ACCEPTED_STUB_NAMES = "stub,bean,class,kamelet,rest,rest-api,platform-http,vertx-http";
 
@@ -74,7 +75,7 @@ final class DependencyDownloaderComponentResolver extends DefaultComponentResolv
 
         if (answer instanceof PlatformHttpComponent) {
             // setup a default http server on port 8080 if not already done
-            VertxHttpServer.phc = (PlatformHttpComponent) answer;
+            VertxHttpServer.setPlatformHttpComponent((PlatformHttpComponent) answer);
             VertxHttpServer.registerServer(camelContext, stub);
         }
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
similarity index 93%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
index e21ba3284d8..6443f36a9aa 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderDataFormatResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderDataFormatResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
@@ -27,7 +27,7 @@ import org.apache.camel.tooling.model.DataFormatModel;
 /**
  * Auto downloaded needed JARs when resolving data formats.
  */
-final class DependencyDownloaderDataFormatResolver extends DefaultDataFormatResolver implements CamelContextAware {
+public final class DependencyDownloaderDataFormatResolver extends DefaultDataFormatResolver implements CamelContextAware {
 
     private final CamelCatalog catalog = new DefaultCamelCatalog();
     private CamelContext camelContext;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
similarity index 97%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
index 6e545c75734..7513a69f3d7 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderKamelet.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -44,7 +44,8 @@ import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.nodeAt;
 /**
  * To automatic downloaded dependencies that Kamelets requires.
  */
-final class DependencyDownloaderKamelet extends ServiceSupport implements CamelContextAware, RouteTemplateLoaderListener {
+public final class DependencyDownloaderKamelet extends ServiceSupport
+        implements CamelContextAware, RouteTemplateLoaderListener {
 
     private final KameletDependencyDownloader downloader;
     private CamelContext camelContext;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
similarity index 93%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
index 5cae567394f..4dc43519a65 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderLanguageResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
@@ -27,7 +27,7 @@ import org.apache.camel.tooling.model.LanguageModel;
 /**
  * Auto downloaded needed JARs when resolving languages.
  */
-final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver implements CamelContextAware {
+public final class DependencyDownloaderLanguageResolver extends DefaultLanguageResolver implements CamelContextAware {
 
     private final CamelCatalog catalog = new DefaultCamelCatalog();
     private CamelContext camelContext;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
similarity index 94%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
index 1dd1d0f0387..cb5ad91e6fb 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderPropertyBindingListener.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderPropertyBindingListener.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.support.PropertyBindingListener;
 
-class DependencyDownloaderPropertyBindingListener implements PropertyBindingListener {
+public class DependencyDownloaderPropertyBindingListener implements PropertyBindingListener {
 
     private final CamelContext camelContext;
     private final KnownDependenciesResolver knownDependenciesResolver;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderResourceLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
similarity index 94%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderResourceLoader.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
index 837d6c4234f..53660c7a75a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderResourceLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderResourceLoader.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.impl.engine.DefaultResourceLoader;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.util.StringHelper;
 
-class DependencyDownloaderResourceLoader extends DefaultResourceLoader {
+public class DependencyDownloaderResourceLoader extends DefaultResourceLoader {
 
     private final String repos;
     private final boolean fresh;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
similarity index 96%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
index 2c1578569fd..832b1d75028 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderRoutesLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderRoutesLoader.java
@@ -14,10 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.main.MainConfigurationProperties;
+import org.apache.camel.main.MainRoutesLoader;
 import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.RoutesBuilderLoader;
 import org.apache.camel.support.ResolverHelper;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
similarity index 93%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
index e9c24358c46..17e22c9f22e 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderStrategy.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderStrategy.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.DependencyStrategy;
 
-class DependencyDownloaderStrategy implements DependencyStrategy {
+public class DependencyDownloaderStrategy implements DependencyStrategy {
 
     private final CamelContext camelContext;
     private final String repos;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java
index 1608859de11..227f5ef51ba 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyUtil.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyUtil.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.io.File;
 import java.lang.reflect.Field;
@@ -34,7 +34,7 @@ import org.jboss.shrinkwrap.resolver.api.maven.MavenStrategyStage;
 import org.jboss.shrinkwrap.resolver.api.maven.MavenWorkingSession;
 import org.jboss.shrinkwrap.resolver.impl.maven.ConfigurableMavenResolverSystemImpl;
 
-final class DependencyUtil {
+public final class DependencyUtil {
 
     private DependencyUtil() {
     }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadException.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadException.java
similarity index 96%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadException.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadException.java
index 588f445df11..4cad7ae31a6 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadException.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 public class DownloadException extends RuntimeException {
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadListener.java
similarity index 96%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadListener.java
index 78c60967738..3461965329d 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadListener.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 /**
  * Listener for downloading a dependency (can be downloaded from a local cache)
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadThreadPool.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadThreadPool.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
index 303a8eaf688..fd763179a39 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloadThreadPool.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloadThreadPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java
similarity index 99%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java
index 68de137e09c..c88c3f673b7 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DownloaderHelper.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DownloaderHelper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.io.File;
 import java.net.URL;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KnownDependenciesResolver.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KnownDependenciesResolver.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
index 29997d93814..dd1cca2f96c 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KnownDependenciesResolver.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/KnownDependenciesResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.io.InputStream;
 import java.util.HashMap;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenArtifact.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenArtifact.java
similarity index 96%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenArtifact.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenArtifact.java
index 9962f561d16..d9ca9c07ecd 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenArtifact.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenArtifact.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import java.io.File;
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
index e9404452749..f31cd96553d 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/MavenGav.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenGav.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
 
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/http/VertxHttpServer.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/http/VertxHttpServer.java
index 348083cd66e..0d31b7b6af4 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/http/VertxHttpServer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.http;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -48,6 +48,7 @@ import org.apache.camel.console.DevConsoleRegistry;
 import org.apache.camel.health.HealthCheck;
 import org.apache.camel.health.HealthCheckHelper;
 import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.main.util.CamelJBangSettingsHelper;
 import org.apache.camel.spi.CamelEvent;
 import org.apache.camel.support.SimpleEventNotifierSupport;
 import org.apache.camel.util.ObjectHelper;
@@ -73,6 +74,10 @@ public final class VertxHttpServer {
     private VertxHttpServer() {
     }
 
+    public static void setPlatformHttpComponent(PlatformHttpComponent phc) {
+        VertxHttpServer.phc = phc;
+    }
+
     public static void registerServer(CamelContext camelContext, boolean stub) {
         if (REGISTERED.compareAndSet(false, true)) {
             doRegisterServer(camelContext, 8080, stub);
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/AnnotationDependencyInjection.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java
similarity index 99%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/AnnotationDependencyInjection.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java
index 449fae07577..17d670229d7 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/AnnotationDependencyInjection.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/injection/AnnotationDependencyInjection.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.injection;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CamelJBangSettingsHelper.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
similarity index 98%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CamelJBangSettingsHelper.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
index 9975d64504a..66efe2d65e6 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/CamelJBangSettingsHelper.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.util;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/ExtraFilesClassLoader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
similarity index 94%
rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/ExtraFilesClassLoader.java
rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
index 4005a09f48a..884ae63b6c2 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/ExtraFilesClassLoader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main;
+package org.apache.camel.main.util;
 
 import java.io.File;
 import java.net.MalformedURLException;
@@ -23,7 +23,7 @@ import java.net.URL;
 /**
  * Classloader used to load the extra files that were present in the CLI arguments
  */
-final class ExtraFilesClassLoader extends ClassLoader {
+public final class ExtraFilesClassLoader extends ClassLoader {
 
     final String[] files;
 
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/DependencyUtilTest.java
index 374b17fc6ed..fbae20cafbe 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/DependencyUtilTest.java
@@ -18,6 +18,8 @@ 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.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
diff --git a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
index 3776b07e484..6bc7d79edaa 100644
--- a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
+++ b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenGavTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.main;
 
+import org.apache.camel.main.download.MavenGav;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;