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 <anco...@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; }