You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/03/10 10:51:29 UTC

[camel-k-runtime] branch fix-767 created (now 0977121)

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

acosentino pushed a change to branch fix-767
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git.


      at 0977121  Move dsl-jsh to core project - Removed the jsh module from camel-k-runtime

This branch includes the following new commits:

     new 0977121  Move dsl-jsh to core project - Removed the jsh module from camel-k-runtime

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[camel-k-runtime] 01/01: Move dsl-jsh to core project - Removed the jsh module from camel-k-runtime

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch fix-767
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git

commit 0977121f2ac46dcb7dee001dbf393a165a023107
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 10 11:50:55 2022 +0100

    Move dsl-jsh to core project - Removed the jsh module from camel-k-runtime
---
 camel-k-loader-jsh/deployment/pom.xml              |  59 ---------
 .../quarkus/deployment/JshSourceLoaderFeature.java |  29 -----
 .../deployment/JshSourceLoaderProcessor.java       |  20 ---
 camel-k-loader-jsh/impl/pom.xml                    | 134 --------------------
 .../services/org/apache/camel/routes-loader/jsh    |   2 -
 .../java/org/apache/camel/k/loader/jsh/Jsh.java    | 136 ---------------------
 .../apache/camel/k/loader/jsh/JshClassLoader.java  |  53 --------
 .../camel/k/loader/jsh/JshLoaderDelegate.java      |  80 ------------
 .../camel/k/loader/jsh/JshRoutesBuilderLoader.java | 112 -----------------
 .../camel/k/loader/jsh/JshSourceLoaderTest.groovy  |  44 -------
 .../camel/k/loader/jsh/support/TestRuntime.groovy  |  67 ----------
 .../impl/src/test/resources/jsh/routes.jsh         |  20 ---
 .../impl/src/test/resources/log4j2-test.xml        |  36 ------
 camel-k-loader-jsh/pom.xml                         |  37 ------
 camel-k-loader-jsh/runtime/pom.xml                 |  86 -------------
 .../jsh/quarkus/JshSourceLoaderRecorder.java       |  23 ----
 itests/camel-k-itests-loader-jsh/pom.xml           |  21 +---
 pom.xml                                            |  16 ---
 .../camel/k/tooling/maven/GenerateCatalogMojo.java |   9 --
 support/camel-k-runtime-bom/pom.xml                |  11 --
 20 files changed, 3 insertions(+), 992 deletions(-)

diff --git a/camel-k-loader-jsh/deployment/pom.xml b/camel-k-loader-jsh/deployment/pom.xml
deleted file mode 100644
index 6a2de5c..0000000
--- a/camel-k-loader-jsh/deployment/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<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/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-loader-jsh-parent</artifactId>
-        <version>1.13.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>camel-k-loader-jsh-deployment</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-loader-jsh</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-core-deployment</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>io.quarkus</groupId>
-                            <artifactId>quarkus-extension-processor</artifactId>
-                            <version>${quarkus-version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderFeature.java b/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderFeature.java
deleted file mode 100644
index 12925ce..0000000
--- a/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderFeature.java
+++ /dev/null
@@ -1,29 +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.k.loader.jsh.quarkus.deployment;
-
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-
-public class JshSourceLoaderFeature {
-    private static final String FEATURE = "camel-k-loader-jsh";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-}
diff --git a/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderProcessor.java b/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderProcessor.java
deleted file mode 100644
index 62cecca..0000000
--- a/camel-k-loader-jsh/deployment/src/main/java/org/apache/camel/k/loader/jsh/quarkus/deployment/JshSourceLoaderProcessor.java
+++ /dev/null
@@ -1,20 +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.k.loader.jsh.quarkus.deployment;
-
-public class JshSourceLoaderProcessor {
-}
diff --git a/camel-k-loader-jsh/impl/pom.xml b/camel-k-loader-jsh/impl/pom.xml
deleted file mode 100644
index 3336eac..0000000
--- a/camel-k-loader-jsh/impl/pom.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<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/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-loader-jsh-parent</artifactId>
-        <version>1.13.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>camel-k-loader-jsh-impl</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-core-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core-engine</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-apt</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- ****************************** -->
-        <!--                                -->
-        <!-- TESTS                          -->
-        <!--                                -->
-        <!-- ****************************** -->
-
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-main</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-timer</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-seda</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-log</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-rest</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.gmavenplus</groupId>
-                <artifactId>gmavenplus-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>addSources</goal>
-                            <goal>addTestSources</goal>
-                            <goal>compile</goal>
-                            <goal>compileTests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <invokeDynamic>true</invokeDynamic>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.jboss.jandex</groupId>
-                <artifactId>jandex-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>make-index</id>
-                        <goals>
-                            <goal>jandex</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/camel-k-loader-jsh/impl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/jsh b/camel-k-loader-jsh/impl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/jsh
deleted file mode 100644
index 6ef86e7..0000000
--- a/camel-k-loader-jsh/impl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/jsh
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.k.loader.jsh.JshRoutesBuilderLoader
diff --git a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/Jsh.java b/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/Jsh.java
deleted file mode 100644
index 6662eee..0000000
--- a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/Jsh.java
+++ /dev/null
@@ -1,136 +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.k.loader.jsh;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.script.ScriptException;
-
-import jdk.jshell.JShell;
-import jdk.jshell.Snippet;
-import jdk.jshell.SnippetEvent;
-import jdk.jshell.SourceCodeAnalysis;
-import jdk.jshell.spi.ExecutionControl;
-import jdk.jshell.spi.ExecutionControlProvider;
-import jdk.jshell.spi.ExecutionEnv;
-import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class Jsh {
-    private static final Logger LOGGER = LoggerFactory.getLogger(Jsh.class);
-    private static final ThreadLocal<Map<String, Object>> BINDINGS = ThreadLocal.withInitial(ConcurrentHashMap::new);
-
-    private Jsh() {
-        // no-op
-    }
-
-    public static List<String> compile(JShell jshell, String script) throws ScriptException {
-        List<String> snippets = new ArrayList<>();
-
-        while (!script.isEmpty()) {
-            SourceCodeAnalysis.CompletionInfo ci = jshell.sourceCodeAnalysis().analyzeCompletion(script);
-            if (!ci.completeness().isComplete()) {
-                throw new ScriptException("Incomplete script:\n" + script);
-            }
-
-            snippets.add(ci.source());
-
-            script = ci.remaining();
-        }
-
-        return snippets;
-    }
-
-    public static void setBinding(JShell jshell, String name, Object value) throws ScriptException {
-        ObjectHelper.notNull(jshell, "jshell");
-        ObjectHelper.notNull(name, "name");
-        ObjectHelper.notNull(value, "value");
-
-        setBinding(jshell, name, value, value.getClass());
-    }
-
-    public static <T> void setBinding(JShell jshell, String name, T value, Class<? extends T> type) throws ScriptException {
-        ObjectHelper.notNull(jshell, "jshell");
-        ObjectHelper.notNull(name, "name");
-        ObjectHelper.notNull(value, "value");
-        ObjectHelper.notNull(type, "type");
-
-        setBinding(name, value);
-
-        // As JShell leverages LocalExecutionControl as execution engine and thus JShell
-        // runs in the current process it is possible to access to local classes, we use
-        // such capability to inject bindings as variables.
-        String snippet = String.format(
-            "var %s = %s.getBinding(\"%s\", %s.class);",
-            name,
-            Jsh.class.getName(),
-            name,
-            type.getName());
-
-        eval(jshell, snippet);
-    }
-
-    public static Object getBinding(String name) {
-        return BINDINGS.get().get(name);
-    }
-
-    public static <T> T getBinding(String name, Class<T> type) {
-        Object answer = BINDINGS.get().get(name);
-        return answer != null ? type.cast(answer) : null;
-    }
-
-    public static void setBinding(String name, Object value) {
-        BINDINGS.get().put(name, value);
-    }
-
-    public static void clearBindings() {
-        BINDINGS.get().clear();
-    }
-
-    public static void eval(JShell jshell, String snippet) throws ScriptException {
-        LOGGER.debug("Evaluating {}", snippet);
-
-        List<SnippetEvent> events = jshell.eval(snippet);
-
-        for (SnippetEvent event : events) {
-            if (event.exception() != null) {
-                throw new ScriptException(event.exception());
-            }
-            if (event.status() != Snippet.Status.VALID) {
-                throw new ScriptException("Error evaluating snippet:\n" + event.snippet().source());
-            }
-        }
-    }
-
-    public static ExecutionControlProvider wrapExecutionControl(String name, ExecutionControl delegate) {
-        return new ExecutionControlProvider() {
-            @Override
-            public String name() {
-                return name;
-            }
-
-            @Override
-            public ExecutionControl generate(ExecutionEnv env, Map<String, String> parameters) throws Throwable {
-                return delegate;
-            }
-        };
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshClassLoader.java b/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshClassLoader.java
deleted file mode 100644
index ade085b..0000000
--- a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshClassLoader.java
+++ /dev/null
@@ -1,53 +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.k.loader.jsh;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import jdk.jshell.spi.ExecutionControl;
-
-/**
- * An implementation of a {@link ClassLoader} that allow hold class bytecode.
- */
-final class JshClassLoader extends ClassLoader {
-    private final Map<String, ExecutionControl.ClassBytecodes> types;
-
-    JshClassLoader(ClassLoader parent) {
-        super(parent);
-
-        this.types = new HashMap<>();
-    }
-
-    void addClassBytecodes(ExecutionControl.ClassBytecodes classBytecodes) {
-        types.put(toResourceString(classBytecodes.name()), classBytecodes);
-    }
-
-    @Override
-    protected Class<?> findClass(String name) throws ClassNotFoundException {
-        final String key = toResourceString(name);
-        final ExecutionControl.ClassBytecodes cb = types.get(key);
-
-        return cb == null
-            ? super.findClass(name)
-            : super.defineClass(name, cb.bytecodes(), 0, cb.bytecodes().length);
-    }
-
-    private static String toResourceString(String name) {
-        return name.replace('.', '/') + ".class";
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshLoaderDelegate.java b/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshLoaderDelegate.java
deleted file mode 100644
index cd59cd0..0000000
--- a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshLoaderDelegate.java
+++ /dev/null
@@ -1,80 +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.k.loader.jsh;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import jdk.jshell.execution.LoaderDelegate;
-import jdk.jshell.spi.ExecutionControl;
-
-/**
- * A simple implementation of {@link LoaderDelegate} tailored for camel-k use case.
- */
-final class JshLoaderDelegate implements LoaderDelegate {
-    private final JshClassLoader loader;
-    private final Map<String, Class<?>> types;
-
-    public JshLoaderDelegate(JshClassLoader loader) {
-        this.loader = loader;
-        this.types = new HashMap<>();
-    }
-
-    @SuppressWarnings("PMD.PreserveStackTrace")
-    @Override
-    public void load(ExecutionControl.ClassBytecodes[] cbs)
-            throws ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException {
-
-        boolean[] loaded = new boolean[cbs.length];
-        try {
-            for (ExecutionControl.ClassBytecodes cb : cbs) {
-                loader.addClassBytecodes(cb);
-            }
-            for (int i = 0; i < cbs.length; ++i) {
-                Class<?> type = loader.loadClass(cbs[i].name());
-                type.getDeclaredMethods();
-
-                types.put(cbs[i].name(), type);
-
-                loaded[i] = true;
-            }
-        } catch (Throwable ex) {
-            throw new ExecutionControl.ClassInstallException("load: " + ex.getMessage(), loaded);
-        }
-    }
-
-    @Override
-    public void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) {
-        throw new UnsupportedOperationException("Not implemented");
-    }
-
-    @Override
-    public void addToClasspath(String cp)
-            throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException {
-       throw new UnsupportedOperationException("Not implemented");
-    }
-
-    @Override
-    public Class<?> findClass(String name) throws ClassNotFoundException {
-        Class<?> type = types.get(name);
-        if (type != null) {
-            return type;
-        }
-
-        throw new ClassNotFoundException(name + " not found");
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshRoutesBuilderLoader.java b/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshRoutesBuilderLoader.java
deleted file mode 100644
index 803d122..0000000
--- a/camel-k-loader-jsh/impl/src/main/java/org/apache/camel/k/loader/jsh/JshRoutesBuilderLoader.java
+++ /dev/null
@@ -1,112 +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.k.loader.jsh;
-
-import java.io.Reader;
-
-import javax.script.ScriptException;
-
-import jdk.jshell.JShell;
-import jdk.jshell.execution.DirectExecutionControl;
-import jdk.jshell.execution.LoaderDelegate;
-import jdk.jshell.spi.ExecutionControl;
-import jdk.jshell.spi.ExecutionControlProvider;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Experimental;
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.api.management.ManagedAttribute;
-import org.apache.camel.api.management.ManagedResource;
-import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
-import org.apache.camel.spi.Registry;
-import org.apache.camel.spi.Resource;
-import org.apache.camel.spi.RoutesBuilderLoader;
-import org.apache.camel.spi.annotations.RoutesLoader;
-import org.apache.camel.support.RoutesBuilderLoaderSupport;
-import org.apache.camel.util.IOHelper;
-
-/**
- * A {@link RoutesBuilderLoader} implementation based on {@link JShell}.
- */
-@ManagedResource(description = "Managed JShell RoutesBuilderLoader")
-@Experimental
-@RoutesLoader("jsh")
-public class JshRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
-    public static final String EXTENSION = "jsh";
-
-    @ManagedAttribute(description = "Supported file extension")
-    @Override
-    public String getSupportedExtension() {
-        return EXTENSION;
-    }
-
-    @Override
-    public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception {
-        return EndpointRouteBuilder.loadEndpointRoutesBuilder(resource, JshRoutesBuilderLoader::eval);
-    }
-
-    private static void eval(Reader reader, EndpointRouteBuilder builder) throws Exception {
-        final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-        final String content = IOHelper.toString(reader);
-
-        //
-        // By default the jdk.jshell.execution.DefaultLoaderDelegate uses a
-        // custom URL class-loader and does not provide any option to set the
-        // parent which causes the ThreadLocal hack used to inject bindings
-        // to fail as there are two copies fo the Jsh class (one from the
-        // Quarkus class loader and one for the custom one).
-        //
-        final JshClassLoader jshcl = new JshClassLoader(tccl);
-        final LoaderDelegate delegate = new JshLoaderDelegate(jshcl);
-        final ExecutionControl control = new DirectExecutionControl(delegate);
-        final ExecutionControlProvider provider = Jsh.wrapExecutionControl("jsh-direct", control);
-
-        Thread.currentThread().setContextClassLoader(jshcl);
-
-        //
-        // Leverage DirectExecutionControl as execution engine to make JShell running
-        // in the current process and give a chance to bind variables to the script
-        // using ThreadLocal hack.
-        //
-        try (JShell jshell = JShell.builder().executionEngine(provider, null).build()) {
-            //
-            // since we can't set a base class for the snippet as we do for other
-            // languages (groovy, kotlin) we need to introduce a top level variable
-            // that users need to use to access the RouteBuilder, like:
-            //
-            //     builder.from("timer:tick")
-            //         .to("log:info")
-            //
-            // context and thus registry can easily be retrieved from the registered
-            // variable `builder` but for a better UX, add them as top level vars.
-            //
-            Jsh.setBinding(jshell, "builder", builder, EndpointRouteBuilder.class);
-            Jsh.setBinding(jshell, "context", builder.getContext(), CamelContext.class);
-            Jsh.setBinding(jshell, "registry", builder.getContext().getRegistry(), Registry.class);
-
-            for (String snippet : Jsh.compile(jshell, content)) {
-                Jsh.eval(jshell, snippet);
-            }
-        } catch (ScriptException e) {
-            throw new RuntimeException(e);
-        } finally {
-            // remove contextual bindings once the snippet has been evaluated
-            Jsh.clearBindings();
-            // restore original TCCL
-            Thread.currentThread().setContextClassLoader(tccl);
-        }
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/JshSourceLoaderTest.groovy b/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/JshSourceLoaderTest.groovy
deleted file mode 100644
index da36ec6..0000000
--- a/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/JshSourceLoaderTest.groovy
+++ /dev/null
@@ -1,44 +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.k.loader.jsh
-
-import org.apache.camel.k.loader.jsh.support.TestRuntime
-import org.apache.camel.model.ProcessDefinition
-import org.apache.camel.model.ToDefinition
-import spock.lang.AutoCleanup
-import spock.lang.Specification
-
-class JshSourceLoaderTest extends Specification {
-    @AutoCleanup
-    def runtime = new TestRuntime()
-
-    def "load"(location) {
-        expect:
-            runtime.loadRoutes(location)
-
-            with(runtime.context.routeDefinitions) {
-                it[0].input.endpointUri ==~ /timer:.*tick/
-                it[0].outputs[0] instanceof ProcessDefinition
-                it[0].outputs[1] instanceof ToDefinition
-            }
-        where:
-            location << [
-                "classpath:jsh/routes.jsh"
-            ]
-
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/support/TestRuntime.groovy b/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/support/TestRuntime.groovy
deleted file mode 100644
index fe26848..0000000
--- a/camel-k-loader-jsh/impl/src/test/groovy/org/apache/camel/k/loader/jsh/support/TestRuntime.groovy
+++ /dev/null
@@ -1,67 +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.k.loader.jsh.support
-
-import org.apache.camel.CamelContext
-import org.apache.camel.RoutesBuilder
-import org.apache.camel.impl.DefaultCamelContext
-import org.apache.camel.k.CompositeClassloader
-import org.apache.camel.k.Runtime
-import org.apache.camel.k.support.SourcesSupport
-import org.apache.camel.model.ModelCamelContext
-
-class TestRuntime implements Runtime, AutoCloseable {
-    final ModelCamelContext context
-    final List<RoutesBuilder> builders
-    final List<Object> configurations
-
-    TestRuntime() {
-        this.context = new DefaultCamelContext()
-        this.context.setApplicationContextClassLoader(new CompositeClassloader())
-        this.builders = []
-        this.configurations = []
-    }
-
-    @Override
-    CamelContext getCamelContext() {
-        return this.context
-    }
-
-    @Override
-    void addRoutes(RoutesBuilder builder) {
-        this.builders << builder
-        this.context.addRoutes(builder)
-    }
-
-    void loadRoutes(String... routes) {
-        SourcesSupport.loadSources(this, routes)
-    }
-
-    void start() {
-        context.start()
-    }
-
-    @Override
-    void stop() {
-        context.stop()
-    }
-
-    @Override
-    void close() {
-        stop()
-    }
-}
diff --git a/camel-k-loader-jsh/impl/src/test/resources/jsh/routes.jsh b/camel-k-loader-jsh/impl/src/test/resources/jsh/routes.jsh
deleted file mode 100644
index 99bfe4f..0000000
--- a/camel-k-loader-jsh/impl/src/test/resources/jsh/routes.jsh
+++ /dev/null
@@ -1,20 +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.
- */
-
-builder.from("timer:tick")
-    .process(e -> {})
-    .to("log:info");
\ No newline at end of file
diff --git a/camel-k-loader-jsh/impl/src/test/resources/log4j2-test.xml b/camel-k-loader-jsh/impl/src/test/resources/log4j2-test.xml
deleted file mode 100644
index f2a5fb2..0000000
--- a/camel-k-loader-jsh/impl/src/test/resources/log4j2-test.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<Configuration status="INFO">
-  <Appenders>
-    <Console name="STDOUT" target="SYSTEM_OUT">
-      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%t|%c{1} - %msg%n"/>
-    </Console>
-    <Null name="NONE"/>
-  </Appenders>
-
-  <Loggers>
-    <Logger name="org.apache.camel.k.loader.jsh.Jsh" level="DEBUG"/>
-    <Root level="INFO">
-      <!--<AppenderRef ref="STDOUT"/>-->
-      <AppenderRef ref="NONE"/>
-    </Root>
-  </Loggers>
-
-</Configuration>
\ No newline at end of file
diff --git a/camel-k-loader-jsh/pom.xml b/camel-k-loader-jsh/pom.xml
deleted file mode 100644
index 477c181..0000000
--- a/camel-k-loader-jsh/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<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/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-runtime-project</artifactId>
-        <version>1.13.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>pom</packaging>
-
-    <artifactId>camel-k-loader-jsh-parent</artifactId>
-
-    <modules>
-        <module>impl</module>
-        <module>runtime</module>
-        <module>deployment</module>
-    </modules>
-
-</project>
diff --git a/camel-k-loader-jsh/runtime/pom.xml b/camel-k-loader-jsh/runtime/pom.xml
deleted file mode 100644
index b34b168..0000000
--- a/camel-k-loader-jsh/runtime/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<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/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-loader-jsh-parent</artifactId>
-        <version>1.13.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>camel-k-loader-jsh</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-loader-jsh-impl</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
-                <version>${quarkus-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>extension-descriptor</goal>
-                        </goals>
-                        <configuration>
-                            <deployment>${project.groupId}:${project.artifactId}-deployment:${project.version}</deployment>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>io.quarkus</groupId>
-                            <artifactId>quarkus-extension-processor</artifactId>
-                            <version>${quarkus-version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.jboss.jandex</groupId>
-                <artifactId>jandex-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>make-index</id>
-                        <goals>
-                            <goal>jandex</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/camel-k-loader-jsh/runtime/src/main/java/org/apache/camel/k/loader/jsh/quarkus/JshSourceLoaderRecorder.java b/camel-k-loader-jsh/runtime/src/main/java/org/apache/camel/k/loader/jsh/quarkus/JshSourceLoaderRecorder.java
deleted file mode 100644
index 561a885..0000000
--- a/camel-k-loader-jsh/runtime/src/main/java/org/apache/camel/k/loader/jsh/quarkus/JshSourceLoaderRecorder.java
+++ /dev/null
@@ -1,23 +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.k.loader.jsh.quarkus;
-
-import io.quarkus.runtime.annotations.Recorder;
-
-@Recorder
-public class JshSourceLoaderRecorder {
-}
diff --git a/itests/camel-k-itests-loader-jsh/pom.xml b/itests/camel-k-itests-loader-jsh/pom.xml
index 34d8ffd..2cc6a0b 100644
--- a/itests/camel-k-itests-loader-jsh/pom.xml
+++ b/itests/camel-k-itests-loader-jsh/pom.xml
@@ -30,11 +30,11 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-loader-jsh</artifactId>
+            <artifactId>camel-k-itests-loader-inspector</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-itests-loader-inspector</artifactId>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-jsh-dsl</artifactId>
         </dependency>
 
         <!-- camel quarkus -->
@@ -67,21 +67,6 @@
             <artifactId>assertj-core</artifactId>
             <scope>test</scope>
         </dependency>
-
-        <!-- The following dependencies guarantee that this module is built after them.  -->
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-loader-jsh-deployment</artifactId>
-            <version>${project.version}</version>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
     </dependencies>
 
 </project>
diff --git a/pom.xml b/pom.xml
index 8b25975..6b4fca4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -365,7 +365,6 @@
         <module>components</module>
 
         <module>camel-k-core</module>
-        <module>camel-k-loader-jsh</module>
 
         <module>camel-k-cron</module>
         <module>camel-k-cloudevents</module>
@@ -631,21 +630,6 @@
             <!-- loaders -->
             <dependency>
                 <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-loader-jsh</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-loader-jsh-deployment</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-loader-jsh-impl</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.k</groupId>
                 <artifactId>camel-k-loader-yaml</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
index 9d2717c..6cf4816 100644
--- a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
+++ b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
@@ -407,15 +407,6 @@ public class GenerateCatalogMojo extends AbstractMojo {
                     .build()
             );
         }
-        if (dslsExclusionList != null && !dslsExclusionList.contains("jsh")) {
-            specBuilder.putLoader(
-                "jsh",
-                CamelLoader.fromArtifact("org.apache.camel.k", "camel-k-loader-jsh")
-                    .addLanguages("jsh")
-                    .putMetadata("native", "false")
-                    .build()
-            );
-        }
     }
 
     private void processComponents(org.apache.camel.catalog.CamelCatalog catalog, Map<String, CamelArtifact> artifacts) {
diff --git a/support/camel-k-runtime-bom/pom.xml b/support/camel-k-runtime-bom/pom.xml
index 8158edb..4a5d1c0 100644
--- a/support/camel-k-runtime-bom/pom.xml
+++ b/support/camel-k-runtime-bom/pom.xml
@@ -181,17 +181,6 @@
                 <artifactId>camel-k-master</artifactId>
                 <version>${project.version}</version>
             </dependency>
-
-            <dependency>
-                <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-loader-jsh-impl</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-loader-jsh</artifactId>
-                <version>${project.version}</version>
-            </dependency>
             <dependency>
                 <groupId>org.apache.camel.k</groupId>
                 <artifactId>camel-k-kamelet-reify</artifactId>