You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2024/07/18 20:02:17 UTC
(camel-karavan) branch main updated: Fix #1340
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push:
new 18382000 Fix #1340
18382000 is described below
commit 18382000091328380fcdf2ae80c42d8077b15fea
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Thu Jul 18 16:01:56 2024 -0400
Fix #1340
---
karavan-generator/pom.xml | 39 +++++++++-
.../camel/karavan/generator/AbstractGenerator.java | 83 +++++++++++++++-------
.../camel/karavan/generator/KameletGenerator.java | 22 +++---
3 files changed, 104 insertions(+), 40 deletions(-)
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 8b8dbebe..9569bd11 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -29,8 +29,8 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
<version.camel-core>4.7.0</version.camel-core>
- <version.camel-kamelet>4.6.0</version.camel-kamelet>
- <version.vertx>4.5.7</version.vertx>
+ <version.camel-kamelet>4.7.0</version.camel-kamelet>
+ <version.vertx>4.5.9</version.vertx>
</properties>
<dependencies>
<dependency>
@@ -43,6 +43,11 @@
<artifactId>vertx-core</artifactId>
<version>${version.vertx}</version>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>2.16.1</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-catalog</artifactId>
@@ -57,6 +62,28 @@
<groupId>org.apache.camel.kamelets</groupId>
<artifactId>camel-kamelets-catalog</artifactId>
<version>${version.camel-kamelet}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>:jackson-dataformat-yaml</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
<build>
@@ -104,6 +131,14 @@
</archive>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>16</source>
+ <target>16</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
<repositories>
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
index cc83d878..9538a7d4 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java
@@ -20,10 +20,7 @@ import io.vertx.core.Vertx;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
-import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.catalog.CamelCatalog;
-import org.apache.camel.catalog.ConfigurationPropertiesValidationResult;
-import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.catalog.VersionHelper;
import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader;
@@ -391,30 +388,30 @@ public class AbstractGenerator {
}
}
- protected List<String> listResources(String resourceFolder) {
- List<Path> filePaths = new ArrayList<>();
- try {
- URI uri = VersionHelper.class.getResource(resourceFolder).toURI();
- Path myPath;
- FileSystem fileSystem = null;
- if (uri.getScheme().equals("jar")) {
- fileSystem = FileSystems.newFileSystem(uri, Collections.emptyMap());
- myPath = fileSystem.getPath(resourceFolder);
- } else {
- myPath = Paths.get(uri);
- }
- filePaths = Files.walk(myPath, 10).collect(Collectors.toList());
-
- // Close the file system if opened
- if (fileSystem != null) {
- fileSystem.close();
- }
- } catch (URISyntaxException | IOException e) {
- e.printStackTrace();
- }
- return filePaths.stream().map(path -> path.getFileName().toString())
- .collect(Collectors.toList());
- }
+// protected List<String> listResources(String resourceFolder) {
+// List<Path> filePaths = new ArrayList<>();
+// try {
+// URI uri = VersionHelper.class.getResource(resourceFolder).toURI();
+// Path myPath;
+// FileSystem fileSystem = null;
+// if (uri.getScheme().equals("jar")) {
+// fileSystem = FileSystems.newFileSystem(uri, Collections.emptyMap());
+// myPath = fileSystem.getPath(resourceFolder);
+// } else {
+// myPath = Paths.get(uri);
+// }
+// filePaths = Files.walk(myPath, 10).collect(Collectors.toList());
+//
+// // Close the file system if opened
+// if (fileSystem != null) {
+// fileSystem.close();
+// }
+// } catch (URISyntaxException | IOException e) {
+// e.printStackTrace();
+// }
+// return filePaths.stream().map(path -> path.getFileName().toString())
+// .collect(Collectors.toList());
+// }
protected String getMetaLanguage(String name) {
try {
@@ -554,4 +551,36 @@ public class AbstractGenerator {
}
return deprecatedClasses;
}
+
+ public List<String> listResources(String resourceFolder) {
+ List<String> result = new ArrayList<>();
+ try {
+ URI uri = Objects.requireNonNull(KaravanGenerator.class.getResource(resourceFolder)).toURI();
+ Path myPath;
+ FileSystem fileSystem = null;
+ if (uri.getScheme().equals("jar")) {
+ fileSystem = FileSystems.newFileSystem(uri, Collections.emptyMap());
+ myPath = fileSystem.getPath(resourceFolder);
+ } else {
+ myPath = Paths.get(uri);
+ }
+
+ try (var pathsStream = Files.walk(myPath, 10)) {
+ pathsStream
+ .filter(Files::isRegularFile)
+ .map(path -> path.getFileName().toString())
+ .forEach(result::add);
+ } catch (IOException e) {
+ var error = e.getCause() != null ? e.getCause() : e;
+ LOGGER.severe("IOException " + error.getMessage());
+ }
+ if (fileSystem != null) {
+ fileSystem.close();
+ }
+ } catch (URISyntaxException | IOException e) {
+ var error = e.getCause() != null ? e.getCause() : e;
+ LOGGER.severe("URISyntaxException | IOException " + error.getMessage());
+ }
+ return result;
+ }
}
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java
index 0bd0b9a3..394fe873 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.karavan.generator;
+import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.kamelets.catalog.KameletsCatalog;
import org.apache.camel.v1.Kamelet;
@@ -24,6 +25,8 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
@@ -31,6 +34,7 @@ import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.stream.Collectors;
public class KameletGenerator extends AbstractGenerator {
@@ -44,19 +48,18 @@ public class KameletGenerator extends AbstractGenerator {
public void createKamelets(String folder, boolean singleFile) {
clearDirectory(Paths.get(folder).toFile());
- KameletsCatalog catalog = new KameletsCatalog();
StringBuilder list = new StringBuilder();
StringBuilder sources = new StringBuilder();
- List<Map.Entry<String, Kamelet>> kamelets = new ArrayList<>(catalog.getKamelets().entrySet());
+ var kamelets = listResources("/kamelets/").stream().sorted().toList();
for (int i = 0; i < kamelets.size() ; i++) {
- Map.Entry<String, Kamelet> k = kamelets.get(i);
- String name = k.getValue().getMetadata().getName();
+ var fileName = kamelets.get(i);
+ var name = fileName.replace(".kamelet.yaml", "");
list.append(name).append("\n");
if (singleFile) {
- sources.append(readKamelet(name)).append(i != kamelets.size() - 1 ? "\n---\n": "\n");
+ sources.append(readKamelet(fileName)).append(i != kamelets.size() - 1 ? "\n---\n": "\n");
} else {
- saveKamelet(folder, name);
+ saveKamelet(folder, fileName);
}
}
saveFile(folder, "kamelets.properties", list.toString());
@@ -65,8 +68,7 @@ public class KameletGenerator extends AbstractGenerator {
}
}
- public String readKamelet(String name) {
- String fileName = name + ".kamelet.yaml";
+ public String readKamelet(String fileName) {
InputStream inputStream = KameletsCatalog.class.getResourceAsStream("/kamelets/" + fileName);
return new BufferedReader(
new InputStreamReader(inputStream, StandardCharsets.UTF_8))
@@ -75,9 +77,7 @@ public class KameletGenerator extends AbstractGenerator {
.collect(Collectors.joining("\n"));
}
- public void saveKamelet(String folder, String name) {
-// LOGGER.info("Creating kamelet " + name);
- String fileName = name + ".kamelet.yaml";
+ public void saveKamelet(String folder, String fileName) {
InputStream inputStream = KameletsCatalog.class.getResourceAsStream("/kamelets/" + fileName);
try {
File targetFile = Paths.get(folder, fileName).toFile();