You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/05/04 06:27:43 UTC
[camel-kamelets] 01/02: KameletCatalog is empty with a bundled jar
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit ae827f0c7bb3ee9c248006ecc08579e2fee46172
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue May 4 08:19:04 2021 +0200
KameletCatalog is empty with a bundled jar
---
library/camel-kamelets-catalog/pom.xml | 33 +++++++++++++++++++++-
.../camel/kamelets/catalog/KameletsCatalog.java | 19 +++++++++----
2 files changed, 46 insertions(+), 6 deletions(-)
diff --git a/library/camel-kamelets-catalog/pom.xml b/library/camel-kamelets-catalog/pom.xml
index 74332c9..9864d2b 100644
--- a/library/camel-kamelets-catalog/pom.xml
+++ b/library/camel-kamelets-catalog/pom.xml
@@ -85,6 +85,13 @@
<scope>test</scope>
<version>${junit.jupiter.version}</version>
</dependency>
+<!-- https://mvnrepository.com/artifact/io.github.classgraph/classgraph -->
+<dependency>
+ <groupId>io.github.classgraph</groupId>
+ <artifactId>classgraph</artifactId>
+ <version>4.8.105</version>
+</dependency>
+
</dependencies>
@@ -103,7 +110,7 @@
<configuration>
<overwrite>true</overwrite>
- <outputDirectory>src/main/resources/kamelets</outputDirectory>
+ <outputDirectory>${project.basedir}/src/main/resources/kamelets</outputDirectory>
<resources>
<resource>
<directory>./../../</directory>
@@ -116,6 +123,30 @@
</execution>
</executions>
</plugin>
+ <plugin>
+
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ <goal>add-resource</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src/kamelets</source>
+ </sources>
+ <resources>
+ <resource>
+ <directory>src/kamelets</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java
index 3e426fe..8e49b78 100644
--- a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java
+++ b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java
@@ -22,13 +22,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import io.fabric8.camelk.v1alpha1.Kamelet;
import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps;
+import io.github.classgraph.ClassGraph;
+import io.github.classgraph.ScanResult;
import org.apache.camel.kamelets.catalog.model.KameletLabelNames;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
@@ -49,14 +54,17 @@ public class KameletsCatalog {
public KameletsCatalog() throws IOException {
initCatalog();
- kameletNames = kameletModels.keySet().stream().sorted(Comparator.naturalOrder()).map(x -> sanitizeFileName(x)).collect(Collectors.toList());
+ kameletNames = kameletModels.keySet().stream().sorted(Comparator.naturalOrder()).map(x -> x).collect(Collectors.toList());
}
private void initCatalog() throws IOException {
- List<String> files = IOUtils.readLines(KameletsCatalog.class.getClassLoader().getResourceAsStream(KAMELETS_DIR), StandardCharsets.UTF_8);
+ List<String> resourceNames;
+ try (ScanResult scanResult = new ClassGraph().acceptPaths("/" + KAMELETS_DIR + "/").scan()) {
+ resourceNames = scanResult.getAllResources().getPaths();
+ }
for (String fileName:
- files) {
- Kamelet kamelet = mapper.readValue(KameletsCatalog.class.getClassLoader().getResourceAsStream(KAMELETS_DIR + File.separator + fileName), Kamelet.class);
+ resourceNames) {
+ Kamelet kamelet = mapper.readValue(KameletsCatalog.class.getResourceAsStream("/" + fileName), Kamelet.class);
kameletModels.put(sanitizeFileName(fileName), kamelet);
}
}
@@ -66,7 +74,8 @@ public class KameletsCatalog {
if (index > 0) {
fileName = fileName.substring(0, index);
}
- return fileName;
+ String finalName = fileName.substring(9);
+ return finalName;
}