squakez opened a new issue, #5268:
URL: https://github.com/apache/camel-quarkus/issues/5268

   ### Bug description
   
   I'm trying to execute a basic Kotlin DSL like:
   ```
   // camel-k: language=kotlin
   
   from("timer:kotlin?period=1000")
     .setBody()
       .simple("Hello Camel from \${routeId}")
     .log("\${body}")
   ```
   Using Camel JBang, all is good:
   ```
   $ camel run test.kts --logging-level DEBUG
   ...
   2023-09-06 12:15:26.163 DEBUG 46242 --- [           main] 
sl.kotlin.KotlinRoutesBuilderLoader : Using JDK home inferred from java.home: 
/usr/lib/jvm/java-17-openjdk
   2023-09-06 12:15:26.164 DEBUG 46242 --- [           main] 
sl.kotlin.KotlinRoutesBuilderLoader : Using JVM IR backend
   2023-09-06 12:15:26.164 DEBUG 46242 --- [           main] 
sl.kotlin.KotlinRoutesBuilderLoader : Using JVM IR backend
   2023-09-06 12:15:26.164 DEBUG 46242 --- [           main] 
sl.kotlin.KotlinRoutesBuilderLoader : Loading modules: [java.se, 
jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, jdk.httpserver, 
jdk.incubator.foreign, jdk.incubator.vector, jdk.jartool, jdk.javadoc, 
jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, jdk.management, 
jdk.management.jfr, jdk.net, jdk.nio.mapmode, jdk.sctp, jdk.security.auth, 
jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, jdk.xml.dom, 
kotlin.stdlib, kotlin.script.runtime, kotlin.reflect, java.base, java.compiler, 
java.datatransfer, java.desktop, java.xml, java.instrument, java.logging, 
java.management, java.management.rmi, java.rmi, java.naming, java.net.http, 
java.prefs, java.scripting, java.security.jgss, java.security.sasl, java.sql, 
java.transaction.xa, java.sql.rowset, java.xml.crypto, jdk.internal.jvmstat, 
jdk.management.agent, jdk.jdwp.agent, jdk.internal.ed, jdk.internal.le, 
jdk.internal.opt]
   2023-09-06 12:15:26.164 DEBUG 46242 --- [           main] 
sl.kotlin.KotlinRoutesBuilderLoader : Loading modules: [java.se, 
jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, jdk.httpserver, 
jdk.incubator.foreign, jdk.incubator.vector, jdk.jartool, jdk.javadoc, 
jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, jdk.management, 
jdk.management.jfr, jdk.net, jdk.nio.mapmode, jdk.sctp, jdk.security.auth, 
jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, jdk.xml.dom, 
kotlin.stdlib, kotlin.script.runtime, kotlin.reflect, java.base, java.compiler, 
java.datatransfer, java.desktop, java.xml, java.instrument, java.logging, 
java.management, java.management.rmi, java.rmi, java.naming, java.net.http, 
java.prefs, java.scripting, java.security.jgss, java.security.sasl, java.sql, 
java.transaction.xa, java.sql.rowset, java.xml.crypto, jdk.internal.jvmstat, 
jdk.management.agent, jdk.jdwp.agent, jdk.internal.ed, jdk.internal.le, 
jdk.internal.opt]
   2023-09-06 12:15:26.174 DEBUG 46242 --- [           main] 
.apache.camel.main.RoutesConfigurer : Adding templated routes into CamelContext 
from RoutesBuilder: Routes: [Route[From[timer:kotlin?period=1000] -> 
[SetBody[org.apache.camel.builder.ExpressionClause@68d6e126], Log[${body}]]]]
   2023-09-06 12:15:26.175 DEBUG 46242 --- [           main] 
el.impl.engine.AbstractCamelContext : Adding templated routes from builder: 
Routes: [Route[From[timer:kotlin?period=1000] -> 
[SetBody[org.apache.camel.builder.ExpressionClause@68d6e126], Log[${body}]]]]
   ...
   ```
   Packaging the application for Camel Quarkus and running in dev mode is good 
as well:
   ```
   camel export --runtime=quarkus --gav=g:a:1.0.0 --dir /tmp/test
   ...
   2023-09-06 12:18:04,590 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (Quarkus Main Thread) Using JDK 
home inferred from java.home: /usr/lib/jvm/java-17-openjdk
   2023-09-06 12:18:04,590 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (Quarkus Main Thread) Using JVM 
IR backend
   2023-09-06 12:18:04,590 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (Quarkus Main Thread) Using JVM 
IR backend
   2023-09-06 12:18:04,590 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (Quarkus Main Thread) Loading 
modules: [java.se, jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, 
jdk.httpserver, jdk.incubator.foreign, jdk.incubator.vector, jdk.jartool, 
jdk.javadoc, jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, 
jdk.management, jdk.management.jfr, jdk.net, jdk.nio.mapmode, jdk.sctp, 
jdk.security.auth, jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, 
jdk.xml.dom, kotlin.stdlib, kotlin.script.runtime, kotlin.reflect, java.base, 
java.compiler, java.datatransfer, java.desktop, java.xml, java.instrument, 
java.logging, java.management, java.management.rmi, java.rmi, java.naming, 
java.net.http, java.prefs, java.scripting, java.security.jgss, 
java.security.sasl, java.sql, java.transaction.xa, java.sql.rowset, 
java.xml.crypto, jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent, 
jdk.internal.ed, jdk.internal.le, jdk.internal.opt]
   
   2023-09-06 12:18:04,590 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (Quarkus Main Thread) Loading 
modules: [java.se, jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, 
jdk.httpserver, jdk.incubator.foreign, jdk.incubator.vector, jdk.jartool, 
jdk.javadoc, jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, 
jdk.management, jdk.management.jfr, jdk.net, jdk.nio.mapmode, jdk.sctp, 
jdk.security.auth, jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, 
jdk.xml.dom, kotlin.stdlib, kotlin.script.runtime, kotlin.reflect, java.base, 
java.compiler, java.datatransfer, java.desktop, java.xml, java.instrument, 
java.logging, java.management, java.management.rmi, java.rmi, java.naming, 
java.net.http, java.prefs, java.scripting, java.security.jgss, 
java.security.sasl, java.sql, java.transaction.xa, java.sql.rowset, 
java.xml.crypto, jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent, 
jdk.internal.ed, jdk.internal.le, jdk.internal.opt]
   
   2023-09-06 12:18:04,593 DEBUG [org.apa.cam.mai.RoutesConfigurer] (Quarkus 
Main Thread) Adding templated routes into CamelContext from RoutesBuilder: 
Routes: [Route[From[timer:kotlin?period=1000] -> 
[SetBody[org.apache.camel.builder.ExpressionClause@51ccf3d], Log[${body}]]]]
   2023-09-06 12:18:04,593 DEBUG [org.apa.cam.imp.eng.AbstractCamelContext] 
(Quarkus Main Thread) Adding templated routes from builder: Routes: 
[Route[From[timer:kotlin?period=1000] -> 
[SetBody[org.apache.camel.builder.ExpressionClause@51ccf3d], Log[${body}]]]]
   ...
   ```
   However when I package the application and try to run the jar, it fails with 
the following error:
   ```
   java -jar target/quarkus-app/quarkus-run.jar
   ...
   2023-09-06 12:19:09,694 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (main) Using JDK home inferred 
from java.home: /usr/lib/jvm/java-17-openjdk
   2023-09-06 12:19:09,694 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (main) Using JVM IR backend
   2023-09-06 12:19:09,694 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (main) Using JVM IR backend
   2023-09-06 12:19:09,694 DEBUG 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (main) Loading modules: 
[java.se, jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, 
jdk.httpserver, jdk.incubator.foreign, jdk.incubator.vector, jdk.jartool, 
jdk.javadoc, jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, 
jdk.management, jdk.management.jfr, jdk.net, jdk.nio.mapmode, jdk.sctp, 
jdk.security.auth, jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, 
jdk.xml.dom, kotlin.stdlib, kotlin.script.runtime, kotlin.reflect, java.base, 
java.compiler, java.datatransfer, java.desktop, java.xml, java.instrument, 
java.logging, java.management, java.management.rmi, java.rmi, java.naming, 
java.net.http, java.prefs, java.scripting, java.security.jgss, 
java.security.sasl, java.sql, java.transaction.xa, java.sql.rowset, 
java.xml.crypto, jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent, 
jdk.internal.ed, jdk.internal.le, jdk.internal.opt]
   2023-09-06 12:19:09,694 ERROR 
[org.apa.cam.dsl.kot.KotlinRoutesBuilderLoader] (main) Module 
kotlin.script.runtime cannot be found in the module graph
   2023-09-06 12:19:09,695 DEBUG [org.apa.cam.mai.RoutesConfigurer] (main) 
Adding templated routes into CamelContext from RoutesBuilder: Routes: []
   2023-09-06 12:19:09,695 DEBUG [org.apa.cam.imp.eng.AbstractCamelContext] 
(main) Adding templated routes from builder: Routes: []
   ...
   ```
   This behavior was not happening in CQ version 2. I tried to troubleshoot and 
check the kotlin dependencies but all seems good. I suspect that between the 
dev application and the prod application there is however something missing 
(the hints point to `kotlin.script.runtime` module, altough I can see the 
dependency where it's expected to be). I run out of ideas on how to continue 
the investigation. Any help is really appreciated.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to