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