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 2023/02/13 15:07:34 UTC
[camel-karavan] branch main updated: Parametrized generator output folder
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 d75902b7 Parametrized generator output folder
d75902b7 is described below
commit d75902b714057334f4d9c3e62c9cfe105de75f9a
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Mon Feb 13 10:07:20 2023 -0500
Parametrized generator output folder
---
karavan-generator/dependency-reduced-pom.xml | 75 ++++++++++++++++++++++
karavan-generator/pom.xml | 69 ++++++++++++--------
.../camel/karavan/generator/AbstractGenerator.java | 14 +++-
.../generator/CamelComponentsGenerator.java | 16 ++---
.../generator/CamelDefinitionGenerator.java | 1 -
.../camel/karavan/generator/KameletGenerator.java | 16 ++---
.../camel/karavan/generator/KaravanGenerator.java | 12 +++-
7 files changed, 146 insertions(+), 57 deletions(-)
diff --git a/karavan-generator/dependency-reduced-pom.xml b/karavan-generator/dependency-reduced-pom.xml
new file mode 100644
index 00000000..ac053c02
--- /dev/null
+++ b/karavan-generator/dependency-reduced-pom.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.camel.karavan</groupId>
+ <artifactId>karavan-generator</artifactId>
+ <version>3.20.1-SNAPSHOT</version>
+ <build>
+ <resources>
+ <resource>
+ <filtering>true</filtering>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/**</include>
+ </includes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.10.1</version>
+ <configuration>
+ <source>11</source>
+ <target>11</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.4.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <mainClass>org.apache.camel.karavan.generator.KaravanGenerator</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <repository>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots />
+ <id>apache.snapshots</id>
+ <name>Apache Development Snapshot Repository</name>
+ <url>https://repository.apache.org/content/repositories/snapshots/</url>
+ </repository>
+ </repositories>
+ <properties>
+ <maven.compiler.source>11</maven.compiler.source>
+ <version.camel-kamelet>3.20.1.1</version.camel-kamelet>
+ <compiler-plugin.version>3.8.1</compiler-plugin.version>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <version.vertx>4.3.6</version.vertx>
+ <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
+ <maven.compiler.target>11</maven.compiler.target>
+ <version.camel-core>3.20.2</version.camel-core>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.compiler.parameters>true</maven.compiler.parameters>
+ </properties>
+</project>
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 467a15de..e78eb3f8 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -27,38 +27,22 @@
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
- <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
- <quarkus.platform.version>2.16.0.Final</quarkus.platform.version>
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
<version.camel-core>3.20.2</version.camel-core>
<version.camel-kamelet>3.20.1.1</version.camel-kamelet>
+ <version.vertx>4.3.6</version.vertx>
</properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>${quarkus.platform.group-id}</groupId>
- <artifactId>${quarkus.platform.artifact-id}</artifactId>
- <version>${quarkus.platform.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
<dependencies>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-arc</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-vertx</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core-model</artifactId>
<version>${version.camel-core}</version>
</dependency>
+ <dependency>
+ <groupId>io.vertx</groupId>
+ <artifactId>vertx-core</artifactId>
+ <version>${version.vertx}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-catalog</artifactId>
@@ -74,11 +58,6 @@
<artifactId>camel-kamelets-catalog</artifactId>
<version>${version.camel-kamelet}</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-jbang-core</artifactId>
- <version>${version.camel-core}</version>
- </dependency>
</dependencies>
<build>
<resources>
@@ -90,6 +69,42 @@
</includes>
</resource>
</resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.10.1</version>
+ <configuration>
+ <source>11</source>
+ <target>11</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.4.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <mainClass>org.apache.camel.karavan.generator.KaravanGenerator</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
<repositories>
<repository>
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 c940f4d5..1b4e1236 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
@@ -31,13 +31,17 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.*;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
public class AbstractGenerator {
+ Logger LOGGER = Logger.getLogger(AbstractGenerator.class.getName());
+
protected Vertx vertx = Vertx.vertx();
protected JsonObject getDefinitions(String source) {
@@ -121,17 +125,21 @@ public class AbstractGenerator {
}
protected void saveFile(String folder, String fileName, String text) {
-// LOGGER.info("Creating component " + fileName);
+ Path path = Paths.get(folder);
try {
+ if (!Files.exists(path)) {
+ Files.createDirectories(path);
+ }
File targetFile = Paths.get(folder, fileName).toFile();
+ LOGGER.info("Saving file " + targetFile.getAbsolutePath());
Files.copy(new ByteArrayInputStream(text.getBytes()), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
}
- protected void writeFileText(String filePath, String data) {
- vertx.fileSystem().writeFileBlocking(filePath, Buffer.buffer(data));
+ protected void writeFileText(String filePath, String data) throws IOException {
+ Files.writeString(Paths.get(filePath), data);
}
protected JsonObject getProperties(JsonObject definitions, String classname) {
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelComponentsGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelComponentsGenerator.java
index bada0062..19ed4972 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelComponentsGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelComponentsGenerator.java
@@ -16,34 +16,26 @@
*/
package org.apache.camel.karavan.generator;
-import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
import org.apache.camel.builder.RouteBuilder;
-import org.jboss.logging.Logger;
-import javax.inject.Inject;
import java.io.*;
-import java.nio.file.Files;
import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.stream.Collectors;
public final class CamelComponentsGenerator extends AbstractGenerator {
- @Inject
- Vertx vertx;
-
public static void main(String[] args) throws Exception {
CamelComponentsGenerator.generate();
System.exit(0);
}
- public static void generate() throws Exception {
+ public static void generate(String... paths) throws Exception {
CamelComponentsGenerator g = new CamelComponentsGenerator();
- g.createCreateComponents("karavan-designer/public/components", true);
- g.createCreateComponents("karavan-app/src/main/resources/components", true);
- g.createCreateComponents("karavan-vscode/components", true);
+ for (String path : paths) {
+ g.createCreateComponents(path + "/components", true);
+ }
}
private void createCreateComponents(String path, boolean singleFile) {
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
index f2ce858f..0493289f 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionGenerator.java
@@ -19,7 +19,6 @@ package org.apache.camel.karavan.generator;
import io.vertx.core.json.JsonObject;
import java.util.*;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
public final class CamelDefinitionGenerator extends AbstractGenerator {
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 db170625..55072be9 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
@@ -17,17 +17,13 @@
package org.apache.camel.karavan.generator;
import io.fabric8.camelk.v1alpha1.Kamelet;
-import io.vertx.core.Vertx;
import org.apache.camel.kamelets.catalog.KameletsCatalog;
-import org.jboss.logging.Logger;
-import javax.inject.Inject;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.lang.reflect.Array;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
@@ -35,19 +31,15 @@ import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.stream.Collectors;
public class KameletGenerator extends AbstractGenerator {
- @Inject
- Vertx vertx;
-
- public static void generate() throws Exception {
+ public static void generate(String... paths) throws Exception {
KameletGenerator g = new KameletGenerator();
- g.createKamelets("karavan-designer/public/kamelets", true);
- g.createKamelets("karavan-app/src/main/resources/kamelets", true);
- g.createKamelets("karavan-vscode/kamelets", true);
+ for (String path : paths) {
+ g.createKamelets(path + "/kamelets", true);
+ }
}
public void createKamelets(String folder, boolean singleFile) {
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KaravanGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KaravanGenerator.java
index 6606d56d..b6e518d3 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KaravanGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KaravanGenerator.java
@@ -19,12 +19,20 @@ package org.apache.camel.karavan.generator;
public final class KaravanGenerator {
public static void main(String[] args) throws Exception {
+ String[] paths = new String[] {
+ "karavan-designer/public",
+ "karavan-app/src/main/resources",
+ "karavan-vscode"
+ };
+ if (args.length > 0) {
+ paths = new String[] {args[0]};
+ }
CamelDefinitionGenerator.generate();
CamelDefinitionApiGenerator.generate();
CamelDefinitionYamlStepGenerator.generate();
CamelMetadataGenerator.generate();
- KameletGenerator.generate();
- CamelComponentsGenerator.generate();
+ KameletGenerator.generate(paths);
+ CamelComponentsGenerator.generate(paths);
System.exit(0);
}