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);
     }