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

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

commit 9109d389894d4ec3b611f57a943fd1a909eb3fd1
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Fri Apr 26 13:49:33 2024 +0200

    Deprecate camel-catalog-maven and minor fixes to it
---
 .../catalog/maven/ComponentArtifactHelper.java     | 24 +++++--------
 .../maven/DefaultMavenArtifactProvider.java        | 41 +++++++++++-----------
 .../camel/catalog/maven/MavenArtifactProvider.java |  4 +++
 .../maven/MavenArtifactProviderManualTest.java     |  1 +
 .../camel/tooling/maven/MavenDownloader.java       |  4 ++-
 5 files changed, 38 insertions(+), 36 deletions(-)

diff --git 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ComponentArtifactHelper.java
 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ComponentArtifactHelper.java
index 70d88f1c7fb..645f6c7bda8 100644
--- 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ComponentArtifactHelper.java
+++ 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ComponentArtifactHelper.java
@@ -19,6 +19,8 @@ package org.apache.camel.catalog.maven;
 import java.io.InputStream;
 import java.util.Properties;
 
+import org.slf4j.Logger;
+
 import static org.apache.camel.catalog.impl.CatalogHelper.loadText;
 
 /**
@@ -30,7 +32,7 @@ public final class ComponentArtifactHelper {
     private ComponentArtifactHelper() {
     }
 
-    public static Properties loadComponentProperties(boolean log, ClassLoader 
classLoader) {
+    public static Properties loadComponentProperties(ClassLoader classLoader, 
Logger logger) {
         Properties answer = new Properties();
         try {
             // load the component files using the recommended way by a 
component.properties file
@@ -39,15 +41,12 @@ public final class ComponentArtifactHelper {
                 answer.load(is);
             }
         } catch (Exception e) {
-            if (log) {
-                System.out.println("WARN: Error loading 
META-INF/services/org/apache/camel/component.properties file due "
-                                   + e.getMessage());
-            }
+            logger.warn("Error loading 
META-INF/services/org/apache/camel/component.properties file due {}", 
e.getMessage(), e);
         }
         return answer;
     }
 
-    public static String extractComponentJavaType(boolean log, ClassLoader 
classLoader, String scheme) {
+    public static String extractComponentJavaType(ClassLoader classLoader, 
String scheme, Logger logger) {
         try {
             InputStream is = 
classLoader.getResourceAsStream("META-INF/services/org/apache/camel/component/" 
+ scheme);
             if (is != null) {
@@ -56,20 +55,17 @@ public final class ComponentArtifactHelper {
                 return (String) props.get("class");
             }
         } catch (Exception e) {
-            if (log) {
-                System.out.println("WARN: Error loading 
META-INF/services/org/apache/camel/component/" + scheme + " file due "
-                                   + e.getMessage());
-            }
+            logger.warn("Error loading 
META-INF/services/org/apache/camel/component/{} file due {}", scheme, 
e.getMessage(), e);
         }
 
         return null;
     }
 
-    public static String loadComponentJSonSchema(boolean log, ClassLoader 
classLoader, String scheme) {
+    public static String loadComponentJSonSchema(ClassLoader classLoader, 
String scheme, Logger logger) {
         String answer = null;
 
         String path = null;
-        String javaType = extractComponentJavaType(log, classLoader, scheme);
+        String javaType = extractComponentJavaType(classLoader, scheme, 
logger);
         if (javaType != null) {
             int pos = javaType.lastIndexOf('.');
             path = javaType.substring(0, pos);
@@ -84,9 +80,7 @@ public final class ComponentArtifactHelper {
                     answer = loadText(is);
                 }
             } catch (Exception e) {
-                if (log) {
-                    System.out.println("WARN: Error loading " + path + " file 
due " + e.getMessage());
-                }
+                logger.warn("Error loading {} file due {}", path, 
e.getMessage(), e);
             }
         }
 
diff --git 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
index e3029b321fa..a896252593f 100644
--- 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
+++ 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
@@ -35,15 +35,19 @@ import org.slf4j.LoggerFactory;
 import static 
org.apache.camel.catalog.maven.ComponentArtifactHelper.extractComponentJavaType;
 import static 
org.apache.camel.catalog.maven.ComponentArtifactHelper.loadComponentJSonSchema;
 import static 
org.apache.camel.catalog.maven.ComponentArtifactHelper.loadComponentProperties;
+import static org.slf4j.helpers.NOPLogger.NOP_LOGGER;
 
 /**
  * Default {@link MavenArtifactProvider} which uses Groovy Grape to download 
the artifact.
+ *
+ * @deprecated use {@code 
org.apache.camel.tooling.maven.support.MavenDownloader} from {@code 
camel-tooling-maven}
+ *             instead.
  */
+@Deprecated(since = "4.6.0")
 public class DefaultMavenArtifactProvider implements MavenArtifactProvider {
 
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(DefaultMavenArtifactProvider.class);
     private String localRepository;
-    private boolean log;
+    private Logger logger;
 
     private final MavenDownloader downloader;
 
@@ -51,14 +55,19 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
 
     public DefaultMavenArtifactProvider() {
         downloader = new MavenDownloaderImpl();
-        ((MavenDownloaderImpl) downloader).build();
+        downloader.build();
+        setLog(true);
     }
 
     /**
      * Sets whether to log errors and warnings to System.out. By default 
nothing is logged.
      */
     public void setLog(boolean log) {
-        this.log = log;
+        setLogger(log ? 
LoggerFactory.getLogger(DefaultMavenArtifactProvider.class) : null);
+    }
+
+    public void setLogger(Logger logger) {
+        this.logger = logger != null ? logger : NOP_LOGGER;
     }
 
     @Override
@@ -80,18 +89,14 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
         try {
             MavenDownloader mavenDownloader = downloader;
             if (localRepository != null) {
-                if (log) {
-                    LOGGER.debug("Using cache directory: {}", localRepository);
-                }
+                logger.debug("Using cache directory: {}", localRepository);
                 // customize only local repository
                 mavenDownloader = mavenDownloader.customize(localRepository,
                         ConfigurationProperties.DEFAULT_CONNECT_TIMEOUT,
                         ConfigurationProperties.DEFAULT_REQUEST_TIMEOUT);
             }
 
-            if (log) {
-                LOGGER.info("Downloading {}:{}:{}", groupId, artifactId, 
version);
-            }
+            logger.info("Downloading {}:{}:{}", groupId, artifactId, version);
 
             try (OpenURLClassLoader classLoader = new OpenURLClassLoader()) {
                 if (version == null || version.isBlank()) {
@@ -114,10 +119,8 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
             }
 
         } catch (Exception e) {
-            if (log) {
-                LOGGER.warn("Error during add components from artifact 
{}:{}:{} due {}", groupId, artifactId, version,
-                        e.getMessage(), e);
-            }
+            logger.warn("Error during add components from artifact {}:{}:{} 
due {}", groupId, artifactId, version,
+                    e.getMessage(), e);
         }
 
         return names;
@@ -125,7 +128,7 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
 
     protected void scanCamelComponents(CamelCatalog camelCatalog, ClassLoader 
classLoader, Set<String> names) {
         // is there any custom Camel components in this library?
-        Properties properties = loadComponentProperties(log, classLoader);
+        Properties properties = loadComponentProperties(classLoader, logger);
         String components = (String) properties.get("components");
         if (components != null) {
             String[] part = components.split("\\s");
@@ -139,13 +142,11 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
 
     private void findClassName(CamelCatalog camelCatalog, ClassLoader 
classLoader, Set<String> names, String scheme) {
         // find the class name
-        String javaType = extractComponentJavaType(log, classLoader, scheme);
+        String javaType = extractComponentJavaType(classLoader, scheme, 
logger);
         if (javaType != null) {
-            String json = loadComponentJSonSchema(log, classLoader, scheme);
+            String json = loadComponentJSonSchema(classLoader, scheme, logger);
             if (json != null) {
-                if (log) {
-                    LOGGER.info("Adding component: {}", scheme);
-                }
+                logger.info("Adding component: " + scheme);
                 camelCatalog.addComponent(scheme, javaType, json);
                 names.add(scheme);
             }
diff --git 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
index c4fb3674674..fb148dd556d 100644
--- 
a/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
+++ 
b/catalog/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java
@@ -22,7 +22,11 @@ import org.apache.camel.catalog.CamelCatalog;
 
 /**
  * Provider which allows downloading artifact using Maven and add content to 
the {@link CamelCatalog}.
+ *
+ * @deprecated use {@code 
org.apache.camel.tooling.maven.support.MavenDownloader} from {@code 
camel-tooling-maven}
+ *             instead.
  */
+@Deprecated(since = "4.6.0")
 public interface MavenArtifactProvider {
 
     /**
diff --git 
a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderManualTest.java
 
b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderManualTest.java
index c03a928dc78..27acf87afb3 100644
--- 
a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderManualTest.java
+++ 
b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderManualTest.java
@@ -29,6 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @Disabled("Cannot run on CI servers so run manually")
+@Deprecated
 public class MavenArtifactProviderManualTest {
 
     @Test
diff --git 
a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
 
b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
index 5dc197584bf..94cdfa29f58 100644
--- 
a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
+++ 
b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloader.java
@@ -19,10 +19,12 @@ package org.apache.camel.tooling.maven;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.camel.Service;
+
 /**
  * Pragmatic Maven download/resolution API that should replace usage of 
Ivy/Grape and Shrinkwrap across Camel.
  */
-public interface MavenDownloader {
+public interface MavenDownloader extends Service {
 
     /**
      * Main resolution method. Using Maven Resolver, a list of maven 
coordinates (in the form of

Reply via email to