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/05 16:17:22 UTC

[camel] branch main updated: CAMEL-19580: camel-catalog-maven - Add getClassLoader API

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 8fb4ae56e88 CAMEL-19580: camel-catalog-maven - Add getClassLoader API
8fb4ae56e88 is described below

commit 8fb4ae56e889c13ba34aa0f84e931c1f0ac9cd40
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jul 5 18:17:08 2023 +0200

    CAMEL-19580: camel-catalog-maven - Add getClassLoader API
---
 .../org/apache/camel/catalog/maven/MavenVersionManager.java  |  8 ++++++++
 .../org/apache/camel/catalog/maven/MavenVersionManager.java  | 12 ++++++++----
 .../java/org/apache/camel/catalog/DefaultVersionManager.java |  5 +++++
 .../main/java/org/apache/camel/catalog/VersionManager.java   |  5 +++++
 .../apache/camel/dsl/jbang/core/common/CatalogLoader.java    |  5 +++++
 5 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/catalog/camel-catalog-maven-grape/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java b/catalog/camel-catalog-maven-grape/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
index e41858f5ff9..382e86ded90 100644
--- a/catalog/camel-catalog-maven-grape/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
+++ b/catalog/camel-catalog-maven-grape/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
@@ -54,6 +54,14 @@ public class MavenVersionManager implements VersionManager, Closeable {
         this.classLoader = classLoader;
     }
 
+    @Override
+    public ClassLoader getClassLoader() {
+        if (classLoader != null) {
+            return classLoader;
+        }
+        return groovyClassLoader;
+    }
+
     /**
      * Configures the directory for the download cache.
      * <p/>
diff --git a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
index fb41f62f809..d32fc1b2e92 100644
--- a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
+++ b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
@@ -75,6 +75,14 @@ public class MavenVersionManager implements VersionManager, Closeable {
         this.classLoader = classLoader;
     }
 
+    @Override
+    public ClassLoader getClassLoader() {
+        if (classLoader != null) {
+            return classLoader;
+        }
+        return helperClassLoader;
+    }
+
     /**
      * Configures the directory for the download cache.
      * <p/>
@@ -179,10 +187,6 @@ public class MavenVersionManager implements VersionManager, Closeable {
     /**
      * Resolves Maven artifact using passed coordinates and use downloaded artifact as one of the URLs in the
      * helperClassLoader, so further Catalog access may load resources from it.
-     *
-     * @param mavenDownloader
-     * @param gav
-     * @param useSnapshots
      */
     private void resolve(MavenDownloader mavenDownloader, String gav, boolean useSnapshots)
             throws MavenResolutionException, MalformedURLException {
diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultVersionManager.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultVersionManager.java
index e2a20e68cc1..e92392a1fed 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultVersionManager.java
+++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultVersionManager.java
@@ -32,6 +32,11 @@ public class DefaultVersionManager implements VersionManager {
         this.classLoader = classLoader;
     }
 
+    @Override
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
+
     @Override
     public String getLoadedVersion() {
         return camelCatalog.getCatalogVersion();
diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/VersionManager.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/VersionManager.java
index e9ac2f30d77..da311b03ecd 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/VersionManager.java
+++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/VersionManager.java
@@ -28,6 +28,11 @@ public interface VersionManager {
      */
     void setClassLoader(ClassLoader classLoader);
 
+    /**
+     * Gets the class loader that is able to load classes and resources from the catalog.
+     */
+    ClassLoader getClassLoader();
+
     /**
      * Gets the current loaded Camel version used by the catalog.
      */
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
index 43407795509..f3cf0e9b41d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
@@ -235,6 +235,11 @@ public final class CatalogLoader {
             this.classLoader = classLoader;
         }
 
+        @Override
+        public ClassLoader getClassLoader() {
+            return classLoader;
+        }
+
         @Override
         public String getLoadedVersion() {
             return version;