in a camel app, I have used property files to provide some of these params in place of passing them thru the code. You may want to explore that.
ચિરાગ/चिराग/Chirag ------------------------------------------ Sent from My Gmail Account On Wed, May 17, 2023 at 4:59 PM Fyodor Kravchenko <feddkr...@hotmail.com> wrote: > > Hi, > > I'm integrating Camel into my application, or better say, application > platform, that may run different arbitrary Camel routes for integration, > and I'd like to provide an ability for a developer who makes > applications for this platform to edit the routes during the > development. I'm already monitoring the filesystem for other artifact > edits, so If there is an API to reload an individual route taken from a > file I might use that. > > I've considered to use a separate Camel standalone or as a containerized > service that I've noticed the project is encouraging now, but this would > require me to develop some protocol to interact with my platform during > its lifecycle. For Camel 2 I managed to instantiate xml snippets to > custom Processors but the API has changed and this Main load-reload > function seemed to do what I want for Camel 3. > > On 17.05.2023 22:58, Claus Ibsen wrote: > > Hi > > > > What is your goal with this? > > > > The reload stuff is for development and not a production app server to > > "redeploy apps" or any sort of that. > > The intention is that you work on a single application. > > > > The reload is using Java APIs for "change file events" and this does not > > support an ANT style way and whatnot. > > > > > > On Wed, May 17, 2023 at 8:45 PM Fyodor Kravchenko <feddkr...@hotmail.com> > > wrote: > > > >> I'm sorry please disregard my previous ramblings, moving the "deploy" > >> directory to the working directory of the java app did the "include" > >> trick. It worked without the "file:" prefix because it was looking into > >> the "target" directry which was the classpath.. My fault. > >> > >> However, the additional question remains: how do I make it _reload_ what > >> it loaded previosly, without catching the extra *.yaml files that may be > >> located in the wrong directories? > >> > >> I'm trying this, > >> > >> Main main = new Main(); > >> > >> main.configure().withRoutesIncludePattern("file:deploy/**/PRIVATE/EXCHANGE/*.yaml"); > >> main.configure().withRoutesReloadEnabled(true); > >> main.configure().withRoutesReloadDirectory("deploy"); > >> main.configure().withRoutesReloadDirectoryRecursive(true); > >> // main.configure().withRoutesReloadPattern("**/PRIVATE/EXCHANGE/*.yaml"); > >> // main.configure().withRoutesReloadPattern("PRIVATE/EXCHANGE/*.yaml"); > >> main.configure().withRoutesReloadPattern("*.yaml"); > >> main.configure().withRoutesReloadRemoveAllRoutes(true); > >> main.run(); > >> > >> but this will catch and load any .yaml file under the "deploy" > >> directory, event those that wasn't loaded at startup, when I touch any > >> of the yamls. > >> > >> Any tips on reloading patterns? > >> > >> Thank you! > >> > >> On 17.05.2023 21:06, Fyodor Kravchenko wrote: > >>> Hi, thanks but this > >>> > >>> ............................. > >>> Netbeans uses the following command to run the program: > >>> > >>> cd /home/fedd/NetBeansProjects/camelmaintry; > >>> JAVA_HOME=/home/fedd/Programs/graalvm-ce-java19-22.3.0 > >>> /snap/netbeans/76/netbeans/java/maven/bin/mvn -Dexec.vmArgs= > >>> "-Dexec.args=${exec.vmArgs} -classpath %classpath ${exec.mainClass} > >>> ${exec.appArgs}" -Dexec.appArgs= > >>> -Dexec.mainClass=camelmaintry.CamelMainTry > >>> -Dexec.executable=/home/fedd/Programs/graalvm-ce-java19-22.3.0/bin/java > >>> org.codehaus.mojo:exec-maven-plugin:3.1.0:exec > >>> > >>> (nothing special in the "exec.mainClass" and other placeholders there) > >>> > >>> I can't grasp how to make it look into this pattern: > >>> > >>> deploy/**/PRIVATE/EXCHANGE/*.yaml > >>> > >>> Thanks! > >>> --fedd > >>> > >>> On 17.05.2023 20:15, Claus Ibsen wrote: > >>>> Hi > >>>> > >>>> Okay for file system, you should favour prefixing with file: > >>>> > >>>> > >> main.configure().withRoutesIncludePattern("file:deploy/customer/PRIVATE/EXCHANGE/*.yaml"); > >> > >>>> > >>>> > >>>> On Wed, May 17, 2023 at 3:53 PM Fyodor Kravchenko > >>>> <feddkr...@hotmail.com> > >>>> wrote: > >>>> > >>>>> Hi, > >>>>> > >>>>> I'm trying to load the routes from the file system directly, it's Camel > >>>>> 3.20.4, and it's java 19 from the GraalVM distribution running on > >>>>> Ubuntu > >>>>> 22.04. The fact it sees the file when no wildcard is present tells me > >>>>> that I'm missing something in the wildcards and the docs. > >>>>> > >>>>> Thank you! > >>>>> > >>>>> --fedd > >>>>> > >>>>> (sorry for the late response, only now I've got the rejection > >>>>> notification for the html-formatted email) > >>>>> > >>>>> On 15.05.2023 11:01, Claus Ibsen wrote: > >>>>>> Hi > >>>>>> > >>>>>> Are you loading these files from classpath or file system directly. > >>>>>> And what Camel version do you use > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Sun, May 14, 2023 at 5:39 PM Fyodor Kravchenko > >>>>>> <feddkr...@hotmail.com > >>>>>> > >>>>>> wrote: > >>>>>> > >>>>>>> Hello, > >>>>>>> > >>>>>>> in my little test I'm trying the following, > >>>>>>> > >>>>>>> > >>>>>>> public class CamelMainTry { > >>>>>>> public static void main(String[] args) throws Exception { > >>>>>>> Main main = new Main(); > >>>>>>> // this works but I need to catch more > >>>>>>> // > >>>>>>> > >>>>>>> > >> main.configure().withRoutesIncludePattern("deploy/customer/PRIVATE/EXCHANGE/*.yaml"); > >> > >>>>>>> // these don't work:' > >>>>>>> // > >>>>>>> > >>>>>>> > >> main.configure().withRoutesIncludePattern("deploy/**/PRIVATE/EXCHANGE/*.yaml"); > >> > >> main.configure().withRoutesIncludePattern("deploy/*/PRIVATE/EXCHANGE/*.yaml"); > >> > >>>>>>> main.run(); > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> my files are located: > >>>>>>> > >>>>>>> deploy/customer/PRIVATE/EXCHANGE/cust.yaml > >>>>>>> > >>>>>>> deploy/register/bank/PRIVATE/EXCHANGE/reg.yaml > >>>>>>> > >>>>>>> So there could be more directories in the middle; however it doesn't > >>>>>>> substitute even one. > >>>>>>> > >>>>>>> The Ant-style (or what I'm thinking the Ant style) pattern doesn't > >>>>>>> seem > >>>>>>> to catch multiple directories. If I specify the directory > >>>>>>> explicitly it > >>>>>>> works, but I need it to locate the routes in dozens of directories. > >>>>>>> > >>>>>>> How do I fix it? > >>>>>>> > >>>>>>> (While we're at it I would also like to make it reload on the fly for > >>>>>>> the testing purposes, not all of the .yaml files but restricting > >>>>>>> it to > >>>>>>> my directory structure) > >>>>>>> > >>>>>>> Thanks! > >>>>>>> > >>>>>>> --fedd > >>>>>>> > >>>>>>> > >>>>>>> > >