This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch CAMEL-17571
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ab841f64175f782bf60e556f459a17fbb9ededa1
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Mar 11 22:38:30 2022 +0100

    camel-kamelet-main - Cleanup code
---
 .../camel/main/DependencyDownloaderKamelet.java    | 111 +++++++++++++++++-
 .../org/apache/camel/main/KameletYamlRoutes.java   | 130 ---------------------
 2 files changed, 110 insertions(+), 131 deletions(-)

diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
index f4155e3..269088b 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/DependencyDownloaderKamelet.java
@@ -16,21 +16,36 @@
  */
 package org.apache.camel.main;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.kamelet.KameletComponent;
+import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoaderSupport;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.RouteTemplateLoaderListener;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.snakeyaml.engine.v2.nodes.Node;
+import org.snakeyaml.engine.v2.nodes.NodeType;
+import org.snakeyaml.engine.v2.nodes.ScalarNode;
+import org.snakeyaml.engine.v2.nodes.SequenceNode;
+
+import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.nodeAt;
 
 /**
  * To automatic downloaded dependencies that Kamelets requires.
  */
 final class DependencyDownloaderKamelet extends ServiceSupport implements 
CamelContextAware, RouteTemplateLoaderListener {
 
-    private final KameletYamlRoutes downloader = new KameletYamlRoutes("yaml");
+    private final KameletDependencyDownloader downloader = new 
KameletDependencyDownloader("yaml");
     private CamelContext camelContext;
 
     @Override
@@ -77,4 +92,98 @@ final class DependencyDownloaderKamelet extends 
ServiceSupport implements CamelC
             }
         }
     }
+
+    /**
+     * To automatic downloaded dependencies that Kamelets requires.
+     */
+    private static class KameletDependencyDownloader extends 
YamlRoutesBuilderLoaderSupport implements CamelContextAware {
+
+        private static final Logger LOG = 
LoggerFactory.getLogger(KameletDependencyDownloader.class);
+        private CamelContext camelContext;
+        private final Set<String> downloaded = new HashSet<>();
+
+        public KameletDependencyDownloader(String extension) {
+            super(extension);
+        }
+
+        @Override
+        public CamelContext getCamelContext() {
+            return camelContext;
+        }
+
+        @Override
+        public void setCamelContext(CamelContext camelContext) {
+            this.camelContext = camelContext;
+        }
+
+        @Override
+        protected RouteBuilder builder(Node node, Resource resource) {
+            final List<String> dependencies = new ArrayList<>();
+
+            Node deps = nodeAt(node, "/spec/dependencies");
+            if (deps != null && deps.getNodeType() == NodeType.SEQUENCE) {
+                SequenceNode sn = (SequenceNode) deps;
+                for (Node child : sn.getValue()) {
+                    if (child.getNodeType() == NodeType.SCALAR) {
+                        ScalarNode scn = (ScalarNode) child;
+                        String dep = scn.getValue();
+                        if (dep != null) {
+                            LOG.trace("Kamelet dependency: {}", dep);
+                            dependencies.add(dep);
+                        }
+                    }
+                }
+            }
+
+            downloadDependencies(dependencies);
+
+            // need to fool and return an empty route builder
+            return new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    // noop
+                }
+            };
+        }
+
+        private void downloadDependencies(List<String> dependencies) {
+            final List<String> gavs = new ArrayList<>();
+            for (String dep : dependencies) {
+                String gav = dep;
+                if (dep.startsWith("camel:")) {
+                    // it's a known camel component
+                    gav = "org.apache.camel:camel-" + dep.substring(6) + ":" + 
camelContext.getVersion();
+                }
+                if (isValidGav(gav)) {
+                    gavs.add(gav);
+                }
+            }
+
+            if (!gavs.isEmpty()) {
+                for (String gav : gavs) {
+                    MavenGav mg = MavenGav.parseGav(camelContext, gav);
+                    DownloaderHelper.downloadDependency(camelContext, 
mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
+                    downloaded.add(gav);
+                }
+            }
+        }
+
+        private boolean isValidGav(String gav) {
+            if (downloaded.contains(gav)) {
+                // already downloaded
+                return false;
+            }
+
+            // skip camel-core and camel-kamelet as they are already included
+            if (gav.contains("org.apache.camel:camel-core") || 
gav.contains("org.apache.camel:camel-kamelet:")) {
+                return false;
+            }
+
+            MavenGav mg = MavenGav.parseGav(camelContext, gav);
+            boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, 
mg.getArtifactId(), mg.getVersion());
+            // valid if not already on classpath
+            return !exists;
+        }
+
+    }
 }
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
deleted file mode 100644
index a57422c..0000000
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletYamlRoutes.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.main;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoaderSupport;
-import org.apache.camel.spi.Resource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.snakeyaml.engine.v2.nodes.Node;
-import org.snakeyaml.engine.v2.nodes.NodeType;
-import org.snakeyaml.engine.v2.nodes.ScalarNode;
-import org.snakeyaml.engine.v2.nodes.SequenceNode;
-
-import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.nodeAt;
-
-/**
- * Reuse the YAML DSL support for parsing Kamelets
- */
-class KameletYamlRoutes extends YamlRoutesBuilderLoaderSupport implements 
CamelContextAware {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(KameletYamlRoutes.class);
-    private CamelContext camelContext;
-    private final Set<String> downloaded = new HashSet<>();
-
-    public KameletYamlRoutes(String extension) {
-        super(extension);
-    }
-
-    @Override
-    public CamelContext getCamelContext() {
-        return camelContext;
-    }
-
-    @Override
-    public void setCamelContext(CamelContext camelContext) {
-        this.camelContext = camelContext;
-    }
-
-    @Override
-    protected RouteBuilder builder(Node node, Resource resource) {
-        final List<String> dependencies = new ArrayList<>();
-
-        Node deps = nodeAt(node, "/spec/dependencies");
-        if (deps != null && deps.getNodeType() == NodeType.SEQUENCE) {
-            SequenceNode sn = (SequenceNode) deps;
-            for (Node child : sn.getValue()) {
-                if (child.getNodeType() == NodeType.SCALAR) {
-                    ScalarNode scn = (ScalarNode) child;
-                    String dep = scn.getValue();
-                    if (dep != null) {
-                        LOG.trace("Kamelet dependency: {}", dep);
-                        dependencies.add(dep);
-                    }
-                }
-            }
-        }
-
-        downloadDependencies(dependencies);
-
-        // need to fool and return an empty route builder
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                // noop
-            }
-        };
-    }
-
-    private void downloadDependencies(List<String> dependencies) {
-        final List<String> gavs = new ArrayList<>();
-        for (String dep : dependencies) {
-            String gav = dep;
-            if (dep.startsWith("camel:")) {
-                // it's a known camel component
-                gav = "org.apache.camel:camel-" + dep.substring(6) + ":" + 
camelContext.getVersion();
-            }
-            if (isValidGav(gav)) {
-                gavs.add(gav);
-            }
-        }
-
-        if (!gavs.isEmpty()) {
-            for (String gav : gavs) {
-                MavenGav mg = MavenGav.parseGav(camelContext, gav);
-                DownloaderHelper.downloadDependency(camelContext, 
mg.getGroupId(), mg.getArtifactId(), mg.getVersion());
-                downloaded.add(gav);
-            }
-        }
-    }
-
-    private boolean isValidGav(String gav) {
-        if (downloaded.contains(gav)) {
-            // already downloaded
-            return false;
-        }
-
-        // skip camel-core and camel-kamelet as they are already included
-        if (gav.contains("org.apache.camel:camel-core") || 
gav.contains("org.apache.camel:camel-kamelet:")) {
-            return false;
-        }
-
-        MavenGav mg = MavenGav.parseGav(camelContext, gav);
-        boolean exists = DownloaderHelper.alreadyOnClasspath(camelContext, 
mg.getArtifactId(), mg.getVersion());
-        // valid if not already on classpath
-        return !exists;
-    }
-
-}

Reply via email to