You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2024/05/02 14:34:39 UTC
(camel) 05/07: Deprecate camel-catalog-maven and minor fixes to it
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 <gn...@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