Thanks Claus. with expression containing //Batchmaster, It does not seem to like xtokenize
2023-03-02 09:29:03.391 INFO 18204 --- [ main] org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.2 is starting 2023-03-02 09:29:03.572 INFO 18204 --- [ main] org.apache.camel.main.MainSupport : Using Java 19.0.1 with PID 18204. Started by csanghavi in C:\work\batchsplit 2023-03-02 09:29:03.591 INFO 18204 --- [ main] mel.cli.connector.LocalCliConnector : Camel CLI enabled (local) org.apache.camel.RuntimeCamelException: Error pre-parsing resource: file:batchsplitversion1.camel.yaml at org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader.preParseRoute(YamlRoutesBuilderLoader.java:766) at org.apache.camel.impl.engine.DefaultRoutesLoader.preParseRoute(DefaultRoutesLoader.java:138) at org.apache.camel.main.RoutesConfigurer.configureModeline(RoutesConfigurer.java:283) at org.apache.camel.main.BaseMainSupport.modelineRoutes(BaseMainSupport.java:629) at org.apache.camel.main.BaseMainSupport.autoconfigure(BaseMainSupport.java:485) at org.apache.camel.main.MainSupport.autoconfigure(MainSupport.java:74) at org.apache.camel.main.KameletMain.autoconfigure(KameletMain.java:466) at org.apache.camel.main.BaseMainSupport.postProcessCamelContext(BaseMainSupport.java:693) at org.apache.camel.main.MainSupport.initCamelContext(MainSupport.java:404) at org.apache.camel.main.KameletMain.doInit(KameletMain.java:265) at org.apache.camel.support.service.BaseService.init(BaseService.java:83) at org.apache.camel.support.service.BaseService.start(BaseService.java:111) at org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:732) at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:564) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:218) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:77) at picocli.CommandLine.executeUserObject(CommandLine.java:2041) at picocli.CommandLine.access$1500(CommandLine.java:148) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) at picocli.CommandLine.execute(CommandLine.java:2170) at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:134) at main.CamelJBang.main(CamelJBang.java:36) Caused by: mapping values are not allowed here in file:batchsplitversion1.camel.yaml, line 10, column 24: xtokenize: ^ at org.snakeyaml.engine.v2.scanner.ScannerImpl.fetchValue(ScannerImpl.java:822) at org.snakeyaml.engine.v2.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:333) at org.snakeyaml.engine.v2.scanner.ScannerImpl.checkToken(ScannerImpl.java:192) at org.snakeyaml.engine.v2.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:616) at org.snakeyaml.engine.v2.parser.ParserImpl.lambda$produce$0(ParserImpl.java:181) at java.base/java.util.Optional.ifPresent(Optional.java:178) if i don't provide expression value: 2023-03-02 09:30:28.444 INFO 2468 --- [ main] org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.2 is starting 2023-03-02 09:30:28.594 INFO 2468 --- [ main] org.apache.camel.main.MainSupport : Using Java 19.0.1 with PID 2468. Started by csanghavi in C:\work\batchsplit 2023-03-02 09:30:28.611 INFO 2468 --- [ main] mel.cli.connector.LocalCliConnector : Camel CLI enabled (local) org.apache.camel.FailedToCreateRouteException: Failed to create route route-a6b4 at: >>> Split[xtokenize{} -> [To[file:/work/batchsplit/out?fileName=${exchangeId}.xml]]] <<< in route: Route(route-a6b4)[From[file:/work/batchsplit/in] -> [Split[x... because of Namespaces is not instance of java.util.Map or org.apache.camel.support.builder.Namespaces at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:215) at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:75) at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:937) at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:800) at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:3008) at org.apache.camel.support.service.BaseService.init(BaseService.java:83) at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2679) at org.apache.camel.support.service.BaseService.start(BaseService.java:111) at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2698) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:262) at org.apache.camel.main.KameletMain.doStart(KameletMain.java:274) at org.apache.camel.support.service.BaseService.start(BaseService.java:119) at org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:732) at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:564) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:218) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:77) at picocli.CommandLine.executeUserObject(CommandLine.java:2041) at picocli.CommandLine.access$1500(CommandLine.java:148) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) at picocli.CommandLine.execute(CommandLine.java:2170) at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:134) at main.CamelJBang.main(CamelJBang.java:36) Caused by: java.lang.IllegalArgumentException: Namespaces is not instance of java.util.Map or org.apache.camel.support.builder.Namespaces at org.apache.camel.language.xtokenizer.XMLTokenizeLanguage.createExpression(XMLTokenizeLanguage.java:119) at org.apache.camel.reifier.language.XMLTokenizerExpressionReifier.createExpression(XMLTokenizerExpressionReifier.java:42) at org.apache.camel.reifier.language.ExpressionReifier.createExpression(ExpressionReifier.java:177) at org.apache.camel.reifier.AbstractReifier.createExpression(AbstractReifier.java:119) at org.apache.camel.reifier.SplitReifier.createProcessor(SplitReifier.java:63) at org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:857) at org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:598) at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:211) Let me get a JIRA started. ચિરાગ/चिराग/Chirag ------------------------------------------ Sent from My Gmail Account On Wed, Mar 1, 2023 at 4:14 PM Claus Ibsen <claus.ib...@gmail.com> wrote: > > Hi > > Oh can you try using expression instead of path, so its > > expression: > xtokenize: > id: xtokenize-460a > expression: //Batchmaster > mode: w > > On Wed, Mar 1, 2023 at 10:13 PM Claus Ibsen <claus.ib...@gmail.com> wrote: > > > Hi > > > > Ah there is a point that xtokenize is using @XmlValue to set that "path". > > And the yaml-dsl is potentially not handing this correctly. > > Can you create a JIRA ticket and I will try to find some time to look > > at it? > > > > On Wed, Mar 1, 2023 at 7:35 PM Chirag <chirag.sangh...@gmail.com> wrote: > > > >> I am using 3.20.0 > >> > >> > >> Here is my route in XML DSL: > >> <?xml version="1.0" encoding="UTF-8"?> > >> <!-- camel-k: language=xml --> > >> > >> <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> xmlns="http://camel.apache.org/schema/spring" > >> xsi:schemaLocation=" > >> http://camel.apache.org/schema/spring > >> https://camel.apache.org/schema/spring/camel-spring.xsd"> > >> > >> <!-- Write your routes here, for example: --> > >> > >> <route> > >> <from uri="file:///c://work//batchsplit//in"/> > >> <split streaming="true"> > >> <xtokenize mode="w">//BatchMaster</xtokenize> > >> <to uri="file:///c://work//batchsplit//out?fileName=${exchangeId}.xml"/> > >> </split> > >> </route> > >> > >> </routes> > >> > >> > >> Trying to redefine this to be Yaml so that this could be > >> edited/maintained thru Karavan. > >> > >> ચિરાગ/चिराग/Chirag > >> ------------------------------------------ > >> Sent from My Gmail Account > >> On Wed, Mar 1, 2023 at 1:14 AM Claus Ibsen <claus.ib...@gmail.com> wrote: > >> > > >> > Hi > >> > > >> > What karavan version do you use? > >> > > >> > xtokenize only have > >> > - mode > >> > - group > >> > > >> > as options so it may seem you use an outdated karavan version, or > >> something? > >> > > >> > You can try karavan online via > >> > https://karavan.space/ > >> > > >> > And I copied your code and there is no "path" in the UI. Remove that. > >> > > >> > > >> > > >> > On Tue, Feb 28, 2023 at 7:40 PM Chirag <chirag.sangh...@gmail.com> > >> wrote: > >> > > >> > > This is actually two questions in one: > >> > > > >> > > I am trying to build YAML to perform an XML Splitter (I was able to > >> > > build one using XML DSL). > >> > > > >> > > Now trying with YAML DSL. > >> > > > >> > > Here is YAML that I came up with using Karavan that looks / feels > >> > > similar to XML DSL. > >> > > - route: > >> > > id: route-a6b4 > >> > > from: > >> > > uri: file:/work/batchsplit/in > >> > > id: from-d1ca > >> > > steps: > >> > > - split: > >> > > id: split-6d45 > >> > > expression: > >> > > xtokenize: > >> > > id: xtokenize-460a > >> > > path: //Batchmaster > >> > > mode: w > >> > > streaming: true > >> > > steps: > >> > > - to: > >> > > uri: > >> file:/work/batchsplit/out?fileName=${exchangeId}.xml > >> > > id: to-1a10 > >> > > > >> > > It is erroring out: > >> > > > >> > > C:\work\batchsplit>camel run batchsplitversion1.camel.yaml > >> > > 2023-02-28 13:25:15.565 INFO 5972 --- [ main] > >> > > org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.2 is > >> > > starting > >> > > 2023-02-28 13:25:15.860 INFO 5972 --- [ main] > >> > > org.apache.camel.main.MainSupport : Using Java 19.0.1 with PID 5972. > >> > > Started by csanghavi in C:\work\batchsplit > >> > > 2023-02-28 13:25:15.873 INFO 5972 --- [ main] > >> > > mel.cli.connector.LocalCliConnector : Camel CLI enabled (local) > >> > > Unsupported field: path > >> > > in file:batchsplitversion1.camel.yaml, line 12, column 23: > >> > > path: "//Batchmaster" > >> > > ^ > >> > > > >> > > at > >> > > > >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.handleUnknownProperty(YamlDeserializerBase.java:132) > >> > > at > >> > > > >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.setProperties(YamlDeserializerBase.java:126) > >> > > at > >> > > > >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.construct(YamlDeserializerBase.java:65) > >> > > > >> > > a) what would be the right way to provide xpath for splitting to > >> xtokenize. > >> > > b) how to provide that using Karavan (Screenshot attached). > >> > > > >> > > Info: > >> > > Karavan running within Visual Studio Code on Windows. Route running > >> > > under Jbang 3.20.2 on Windows. > >> > > > >> > > Regards, > >> > > > >> > > ચિરાગ/चिराग/Chirag > >> > > ------------------------------------------ > >> > > Sent from My Gmail Account > >> > > > >> > > >> > > >> > -- > >> > Claus Ibsen > >> > ----------------- > >> > @davsclaus > >> > Camel in Action 2: https://www.manning.com/ibsen2 > >> > > > > > > -- > > Claus Ibsen > > ----------------- > > @davsclaus > > Camel in Action 2: https://www.manning.com/ibsen2 > > > > > -- > Claus Ibsen > ----------------- > @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2