You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by carlo cancellieri <c....@proximainformatica.com> on 2014/05/23 13:17:22 UTC

Why tokenize (and some others) does not support properties substitution?

Hi,
 I'm trying to use the properties substitution in my tokenizer with no
success.
I've also just seen that the camel-spring.xsd definition does not declare:

 <xs:anyAttribute namespace="##other" processContents="skip"/>

In many complex types, so spring is not able to use the defined 'prop'
namespace as prefix for the tokenizer and csv parser.

This is my route and I'd like the substitute the 'csv.row.delimiter',
'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)

<route>
  <!-- ACTUALLY READ THE CSV stream -->
  <from uri="seda:splitting" />
   <split parallelProcessing="false" stopOnException="false"
streaming="true">
  <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group" />
    <unmarshal>
 <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
             skipFirstLine="false" useMaps="true" configRef="csvConfig"
             lazyLoad="false" />
  </unmarshal>

  <to uri="seda:processing" />
  </split>
</route>

Is there a concrete need for this situation? If ther's not, you'll consider
to merge a contribution patch on this?

Cheers,
Carlo

-- 
Dott. Carlo Cancellieri
*skype*: ccancellieri
*Twitter*: @cancellieric
*LinkedIn*: http://it.linkedin.com/in/ccancellieri/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Yeah sure we love contributions
http://camel.apache.org/contributing



On Fri, May 23, 2014 at 4:41 PM, carlo cancellieri
<c....@proximainformatica.com> wrote:
> Claus,
>  I've just opened the jira (with your comment):
> https://issues.apache.org/jira/browse/CAMEL-7463
>
> Do you accept any contribution (pull req) on this camel-core component
> improvement?
> Cheers,
> Carlo
>
>
> 2014-05-23 15:24 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>
>> Hi
>>
>> Ah yeah we do not have support for @XmlAnyAttribute on the
>> ExpressionDefinition which is what the tokenizer etc is based upon.
>>
>> So to support that we need to add that into the model, and also allow
>> org.apache.camel.model.ProcessorDefinition#resolvePropertyPlaceholders
>> to resolve from expressione definition too.
>>
>> Feel free to log a JIRA.
>>
>>
>>
>> On Fri, May 23, 2014 at 2:03 PM, carlo cancellieri
>> <c....@proximainformatica.com> wrote:
>> > Claus,
>> >  I think so.
>> > If you kindly want to check here:
>> >
>> https://github.com/ccancellieri/camel_poc/blob/master/src/main/resources/META-INF/spring/camel-context.xml#L79
>> > (at line 79) is commented out what I was trying to use (with no success).
>> > As you could see I'm using it in the file endpoint url and it works so
>> > there's no problem with file recognition.
>> >
>> > In the properties file I've:
>> > csv.row.group=2
>> > csv.row.delimiter=\n
>> >
>> > The error is:
>> > Exception in thread "main"
>> > org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
>> Line
>> > 79 in XML document from file
>> >
>> [/home/carlo/work/code/java/camel_poc/target/classes/META-INF/spring/camel-context.xml]
>> > is invalid; nested exception is org.xml.sax.SAXParseException:
>> > cvc-complex-type.3.2.2: Attribute 'prop:token' is not allowed to appear
>> in
>> > element 'tokenize'.
>> >  at
>> >
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
>> > at
>> >
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
>> >  at
>> >
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
>> > at
>> >
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
>> >  at
>> >
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
>> > at
>> >
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
>> >  at
>> >
>> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
>> > at
>> >
>> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
>> >  at
>> >
>> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
>> > at
>> >
>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
>> >  at
>> >
>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
>> > at
>> >
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
>> >  at
>> >
>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
>> > at
>> >
>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
>> >  at
>> >
>> org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:204)
>> > at org.apache.camel.spring.Main.doStart(Main.java:156)
>> >  at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>> > at org.apache.camel.main.MainSupport.run(MainSupport.java:147)
>> >  at org.apache.camel.main.MainSupport.run(MainSupport.java:351)
>> > at org.apache.camel.spring.Main.main(Main.java:89)
>> > Caused by: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2:
>> Attribute
>> > 'prop:token' is not allowed to appear in element 'tokenize'.
>> > at
>> >
>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:423)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3188)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2665)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2072)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:731)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
>> >  at
>> >
>> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:232)
>> > at
>> >
>> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
>> >  at
>> >
>> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
>> > at
>> >
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
>> >  ... 19 more
>> >
>> > Cheers,
>> > Carlo
>> >
>> >
>> > 2014-05-23 13:52 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>> >
>> >> Hi
>> >>
>> >> Are you sure you do it correctly according to
>> >> http://camel.apache.org/using-propertyplaceholder.html
>> >>
>> >> On Fri, May 23, 2014 at 1:27 PM, carlo cancellieri
>> >> <c....@proximainformatica.com> wrote:
>> >> > I'm using the master branch so I'm on 2.14-SNAPSHOT
>> >> >
>> >> >
>> >> > 2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>> >> >
>> >> >> What version of Camel do you use? And have you tried with latest
>> >> release.
>> >> >>
>> >> >> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
>> >> >> <c....@proximainformatica.com> wrote:
>> >> >> > Hi,
>> >> >> >  I'm trying to use the properties substitution in my tokenizer
>> with no
>> >> >> > success.
>> >> >> > I've also just seen that the camel-spring.xsd definition does not
>> >> >> declare:
>> >> >> >
>> >> >> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
>> >> >> >
>> >> >> > In many complex types, so spring is not able to use the defined
>> 'prop'
>> >> >> > namespace as prefix for the tokenizer and csv parser.
>> >> >> >
>> >> >> > This is my route and I'd like the substitute the
>> 'csv.row.delimiter',
>> >> >> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the
>> csv)
>> >> >> >
>> >> >> > <route>
>> >> >> >   <!-- ACTUALLY READ THE CSV stream -->
>> >> >> >   <from uri="seda:splitting" />
>> >> >> >    <split parallelProcessing="false" stopOnException="false"
>> >> >> > streaming="true">
>> >> >> >   <tokenize prop:token="csv.row.delimiter"
>> prop:group="csv.row.group"
>> >> />
>> >> >> >     <unmarshal>
>> >> >> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
>> >> >> >              skipFirstLine="false" useMaps="true"
>> >> configRef="csvConfig"
>> >> >> >              lazyLoad="false" />
>> >> >> >   </unmarshal>
>> >> >> >
>> >> >> >   <to uri="seda:processing" />
>> >> >> >   </split>
>> >> >> > </route>
>> >> >> >
>> >> >> > Is there a concrete need for this situation? If ther's not, you'll
>> >> >> consider
>> >> >> > to merge a contribution patch on this?
>> >> >> >
>> >> >> > Cheers,
>> >> >> > Carlo
>> >> >> >
>> >> >> > --
>> >> >> > Dott. Carlo Cancellieri
>> >> >> > *skype*: ccancellieri
>> >> >> > *Twitter*: @cancellieric
>> >> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Claus Ibsen
>> >> >> -----------------
>> >> >> Red Hat, Inc.
>> >> >> Email: cibsen@redhat.com
>> >> >> Twitter: davsclaus
>> >> >> Blog: http://davsclaus.com
>> >> >> Author of Camel in Action: http://www.manning.com/ibsen
>> >> >> hawtio: http://hawt.io/
>> >> >> fabric8: http://fabric8.io/
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Dott. Carlo Cancellieri
>> >> > *skype*: ccancellieri
>> >> > *Twitter*: @cancellieric
>> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> Red Hat, Inc.
>> >> Email: cibsen@redhat.com
>> >> Twitter: davsclaus
>> >> Blog: http://davsclaus.com
>> >> Author of Camel in Action: http://www.manning.com/ibsen
>> >> hawtio: http://hawt.io/
>> >> fabric8: http://fabric8.io/
>> >>
>> >
>> >
>> >
>> > --
>> > Dott. Carlo Cancellieri
>> > *skype*: ccancellieri
>> > *Twitter*: @cancellieric
>> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: cibsen@redhat.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>> hawtio: http://hawt.io/
>> fabric8: http://fabric8.io/
>>
>
>
>
> --
> Dott. Carlo Cancellieri
> *skype*: ccancellieri
> *Twitter*: @cancellieric
> *LinkedIn*: http://it.linkedin.com/in/ccancellieri/



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by carlo cancellieri <c....@proximainformatica.com>.
Claus,
 I've just opened the jira (with your comment):
https://issues.apache.org/jira/browse/CAMEL-7463

Do you accept any contribution (pull req) on this camel-core component
improvement?
Cheers,
Carlo


2014-05-23 15:24 GMT+02:00 Claus Ibsen <cl...@gmail.com>:

> Hi
>
> Ah yeah we do not have support for @XmlAnyAttribute on the
> ExpressionDefinition which is what the tokenizer etc is based upon.
>
> So to support that we need to add that into the model, and also allow
> org.apache.camel.model.ProcessorDefinition#resolvePropertyPlaceholders
> to resolve from expressione definition too.
>
> Feel free to log a JIRA.
>
>
>
> On Fri, May 23, 2014 at 2:03 PM, carlo cancellieri
> <c....@proximainformatica.com> wrote:
> > Claus,
> >  I think so.
> > If you kindly want to check here:
> >
> https://github.com/ccancellieri/camel_poc/blob/master/src/main/resources/META-INF/spring/camel-context.xml#L79
> > (at line 79) is commented out what I was trying to use (with no success).
> > As you could see I'm using it in the file endpoint url and it works so
> > there's no problem with file recognition.
> >
> > In the properties file I've:
> > csv.row.group=2
> > csv.row.delimiter=\n
> >
> > The error is:
> > Exception in thread "main"
> > org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
> Line
> > 79 in XML document from file
> >
> [/home/carlo/work/code/java/camel_poc/target/classes/META-INF/spring/camel-context.xml]
> > is invalid; nested exception is org.xml.sax.SAXParseException:
> > cvc-complex-type.3.2.2: Attribute 'prop:token' is not allowed to appear
> in
> > element 'tokenize'.
> >  at
> >
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
> > at
> >
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
> >  at
> >
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
> > at
> >
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
> >  at
> >
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
> > at
> >
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
> >  at
> >
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
> > at
> >
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
> >  at
> >
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
> > at
> >
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
> >  at
> >
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
> > at
> >
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
> >  at
> >
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
> > at
> >
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
> >  at
> >
> org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:204)
> > at org.apache.camel.spring.Main.doStart(Main.java:156)
> >  at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> > at org.apache.camel.main.MainSupport.run(MainSupport.java:147)
> >  at org.apache.camel.main.MainSupport.run(MainSupport.java:351)
> > at org.apache.camel.spring.Main.main(Main.java:89)
> > Caused by: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2:
> Attribute
> > 'prop:token' is not allowed to appear in element 'tokenize'.
> > at
> >
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
> >  at
> >
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:423)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3188)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2665)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2072)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:731)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
> > at
> >
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
> >  at
> >
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
> > at
> >
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
> >  at
> >
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
> > at
> >
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
> >  at
> >
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:232)
> > at
> >
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
> >  at
> >
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
> > at
> >
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
> >  ... 19 more
> >
> > Cheers,
> > Carlo
> >
> >
> > 2014-05-23 13:52 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
> >
> >> Hi
> >>
> >> Are you sure you do it correctly according to
> >> http://camel.apache.org/using-propertyplaceholder.html
> >>
> >> On Fri, May 23, 2014 at 1:27 PM, carlo cancellieri
> >> <c....@proximainformatica.com> wrote:
> >> > I'm using the master branch so I'm on 2.14-SNAPSHOT
> >> >
> >> >
> >> > 2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
> >> >
> >> >> What version of Camel do you use? And have you tried with latest
> >> release.
> >> >>
> >> >> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
> >> >> <c....@proximainformatica.com> wrote:
> >> >> > Hi,
> >> >> >  I'm trying to use the properties substitution in my tokenizer
> with no
> >> >> > success.
> >> >> > I've also just seen that the camel-spring.xsd definition does not
> >> >> declare:
> >> >> >
> >> >> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
> >> >> >
> >> >> > In many complex types, so spring is not able to use the defined
> 'prop'
> >> >> > namespace as prefix for the tokenizer and csv parser.
> >> >> >
> >> >> > This is my route and I'd like the substitute the
> 'csv.row.delimiter',
> >> >> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the
> csv)
> >> >> >
> >> >> > <route>
> >> >> >   <!-- ACTUALLY READ THE CSV stream -->
> >> >> >   <from uri="seda:splitting" />
> >> >> >    <split parallelProcessing="false" stopOnException="false"
> >> >> > streaming="true">
> >> >> >   <tokenize prop:token="csv.row.delimiter"
> prop:group="csv.row.group"
> >> />
> >> >> >     <unmarshal>
> >> >> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
> >> >> >              skipFirstLine="false" useMaps="true"
> >> configRef="csvConfig"
> >> >> >              lazyLoad="false" />
> >> >> >   </unmarshal>
> >> >> >
> >> >> >   <to uri="seda:processing" />
> >> >> >   </split>
> >> >> > </route>
> >> >> >
> >> >> > Is there a concrete need for this situation? If ther's not, you'll
> >> >> consider
> >> >> > to merge a contribution patch on this?
> >> >> >
> >> >> > Cheers,
> >> >> > Carlo
> >> >> >
> >> >> > --
> >> >> > Dott. Carlo Cancellieri
> >> >> > *skype*: ccancellieri
> >> >> > *Twitter*: @cancellieric
> >> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Claus Ibsen
> >> >> -----------------
> >> >> Red Hat, Inc.
> >> >> Email: cibsen@redhat.com
> >> >> Twitter: davsclaus
> >> >> Blog: http://davsclaus.com
> >> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> >> hawtio: http://hawt.io/
> >> >> fabric8: http://fabric8.io/
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > Dott. Carlo Cancellieri
> >> > *skype*: ccancellieri
> >> > *Twitter*: @cancellieric
> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> Email: cibsen@redhat.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> hawtio: http://hawt.io/
> >> fabric8: http://fabric8.io/
> >>
> >
> >
> >
> > --
> > Dott. Carlo Cancellieri
> > *skype*: ccancellieri
> > *Twitter*: @cancellieric
> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>



-- 
Dott. Carlo Cancellieri
*skype*: ccancellieri
*Twitter*: @cancellieric
*LinkedIn*: http://it.linkedin.com/in/ccancellieri/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Ah yeah we do not have support for @XmlAnyAttribute on the
ExpressionDefinition which is what the tokenizer etc is based upon.

So to support that we need to add that into the model, and also allow
org.apache.camel.model.ProcessorDefinition#resolvePropertyPlaceholders
to resolve from expressione definition too.

Feel free to log a JIRA.



On Fri, May 23, 2014 at 2:03 PM, carlo cancellieri
<c....@proximainformatica.com> wrote:
> Claus,
>  I think so.
> If you kindly want to check here:
> https://github.com/ccancellieri/camel_poc/blob/master/src/main/resources/META-INF/spring/camel-context.xml#L79
> (at line 79) is commented out what I was trying to use (with no success).
> As you could see I'm using it in the file endpoint url and it works so
> there's no problem with file recognition.
>
> In the properties file I've:
> csv.row.group=2
> csv.row.delimiter=\n
>
> The error is:
> Exception in thread "main"
> org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line
> 79 in XML document from file
> [/home/carlo/work/code/java/camel_poc/target/classes/META-INF/spring/camel-context.xml]
> is invalid; nested exception is org.xml.sax.SAXParseException:
> cvc-complex-type.3.2.2: Attribute 'prop:token' is not allowed to appear in
> element 'tokenize'.
>  at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
>  at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
> at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
>  at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
> at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
>  at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
> at
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
>  at
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
> at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
>  at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
>  at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
>  at
> org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:204)
> at org.apache.camel.spring.Main.doStart(Main.java:156)
>  at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> at org.apache.camel.main.MainSupport.run(MainSupport.java:147)
>  at org.apache.camel.main.MainSupport.run(MainSupport.java:351)
> at org.apache.camel.spring.Main.main(Main.java:89)
> Caused by: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute
> 'prop:token' is not allowed to appear in element 'tokenize'.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
>  at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
>  at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:423)
>  at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3188)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2665)
>  at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2072)
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:731)
>  at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
>  at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>  at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
>  at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
>  at
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:232)
> at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
>  at
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
>  ... 19 more
>
> Cheers,
> Carlo
>
>
> 2014-05-23 13:52 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>
>> Hi
>>
>> Are you sure you do it correctly according to
>> http://camel.apache.org/using-propertyplaceholder.html
>>
>> On Fri, May 23, 2014 at 1:27 PM, carlo cancellieri
>> <c....@proximainformatica.com> wrote:
>> > I'm using the master branch so I'm on 2.14-SNAPSHOT
>> >
>> >
>> > 2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>> >
>> >> What version of Camel do you use? And have you tried with latest
>> release.
>> >>
>> >> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
>> >> <c....@proximainformatica.com> wrote:
>> >> > Hi,
>> >> >  I'm trying to use the properties substitution in my tokenizer with no
>> >> > success.
>> >> > I've also just seen that the camel-spring.xsd definition does not
>> >> declare:
>> >> >
>> >> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
>> >> >
>> >> > In many complex types, so spring is not able to use the defined 'prop'
>> >> > namespace as prefix for the tokenizer and csv parser.
>> >> >
>> >> > This is my route and I'd like the substitute the 'csv.row.delimiter',
>> >> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)
>> >> >
>> >> > <route>
>> >> >   <!-- ACTUALLY READ THE CSV stream -->
>> >> >   <from uri="seda:splitting" />
>> >> >    <split parallelProcessing="false" stopOnException="false"
>> >> > streaming="true">
>> >> >   <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group"
>> />
>> >> >     <unmarshal>
>> >> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
>> >> >              skipFirstLine="false" useMaps="true"
>> configRef="csvConfig"
>> >> >              lazyLoad="false" />
>> >> >   </unmarshal>
>> >> >
>> >> >   <to uri="seda:processing" />
>> >> >   </split>
>> >> > </route>
>> >> >
>> >> > Is there a concrete need for this situation? If ther's not, you'll
>> >> consider
>> >> > to merge a contribution patch on this?
>> >> >
>> >> > Cheers,
>> >> > Carlo
>> >> >
>> >> > --
>> >> > Dott. Carlo Cancellieri
>> >> > *skype*: ccancellieri
>> >> > *Twitter*: @cancellieric
>> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> Red Hat, Inc.
>> >> Email: cibsen@redhat.com
>> >> Twitter: davsclaus
>> >> Blog: http://davsclaus.com
>> >> Author of Camel in Action: http://www.manning.com/ibsen
>> >> hawtio: http://hawt.io/
>> >> fabric8: http://fabric8.io/
>> >>
>> >
>> >
>> >
>> > --
>> > Dott. Carlo Cancellieri
>> > *skype*: ccancellieri
>> > *Twitter*: @cancellieric
>> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: cibsen@redhat.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>> hawtio: http://hawt.io/
>> fabric8: http://fabric8.io/
>>
>
>
>
> --
> Dott. Carlo Cancellieri
> *skype*: ccancellieri
> *Twitter*: @cancellieric
> *LinkedIn*: http://it.linkedin.com/in/ccancellieri/



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by carlo cancellieri <c....@proximainformatica.com>.
Claus,
 I think so.
If you kindly want to check here:
https://github.com/ccancellieri/camel_poc/blob/master/src/main/resources/META-INF/spring/camel-context.xml#L79
(at line 79) is commented out what I was trying to use (with no success).
As you could see I'm using it in the file endpoint url and it works so
there's no problem with file recognition.

In the properties file I've:
csv.row.group=2
csv.row.delimiter=\n

The error is:
Exception in thread "main"
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line
79 in XML document from file
[/home/carlo/work/code/java/camel_poc/target/classes/META-INF/spring/camel-context.xml]
is invalid; nested exception is org.xml.sax.SAXParseException:
cvc-complex-type.3.2.2: Attribute 'prop:token' is not allowed to appear in
element 'tokenize'.
 at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
 at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
 at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
 at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
 at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
 at
org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
 at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
 at
org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:204)
at org.apache.camel.spring.Main.doStart(Main.java:156)
 at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:147)
 at org.apache.camel.main.MainSupport.run(MainSupport.java:351)
at org.apache.camel.spring.Main.main(Main.java:89)
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute
'prop:token' is not allowed to appear in element 'tokenize'.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
 at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
 at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:423)
 at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3188)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2665)
 at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2072)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:731)
 at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
 at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
 at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
 at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
 at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:232)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
 at
org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
 ... 19 more

Cheers,
Carlo


2014-05-23 13:52 GMT+02:00 Claus Ibsen <cl...@gmail.com>:

> Hi
>
> Are you sure you do it correctly according to
> http://camel.apache.org/using-propertyplaceholder.html
>
> On Fri, May 23, 2014 at 1:27 PM, carlo cancellieri
> <c....@proximainformatica.com> wrote:
> > I'm using the master branch so I'm on 2.14-SNAPSHOT
> >
> >
> > 2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
> >
> >> What version of Camel do you use? And have you tried with latest
> release.
> >>
> >> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
> >> <c....@proximainformatica.com> wrote:
> >> > Hi,
> >> >  I'm trying to use the properties substitution in my tokenizer with no
> >> > success.
> >> > I've also just seen that the camel-spring.xsd definition does not
> >> declare:
> >> >
> >> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
> >> >
> >> > In many complex types, so spring is not able to use the defined 'prop'
> >> > namespace as prefix for the tokenizer and csv parser.
> >> >
> >> > This is my route and I'd like the substitute the 'csv.row.delimiter',
> >> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)
> >> >
> >> > <route>
> >> >   <!-- ACTUALLY READ THE CSV stream -->
> >> >   <from uri="seda:splitting" />
> >> >    <split parallelProcessing="false" stopOnException="false"
> >> > streaming="true">
> >> >   <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group"
> />
> >> >     <unmarshal>
> >> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
> >> >              skipFirstLine="false" useMaps="true"
> configRef="csvConfig"
> >> >              lazyLoad="false" />
> >> >   </unmarshal>
> >> >
> >> >   <to uri="seda:processing" />
> >> >   </split>
> >> > </route>
> >> >
> >> > Is there a concrete need for this situation? If ther's not, you'll
> >> consider
> >> > to merge a contribution patch on this?
> >> >
> >> > Cheers,
> >> > Carlo
> >> >
> >> > --
> >> > Dott. Carlo Cancellieri
> >> > *skype*: ccancellieri
> >> > *Twitter*: @cancellieric
> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> Email: cibsen@redhat.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> hawtio: http://hawt.io/
> >> fabric8: http://fabric8.io/
> >>
> >
> >
> >
> > --
> > Dott. Carlo Cancellieri
> > *skype*: ccancellieri
> > *Twitter*: @cancellieric
> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>



-- 
Dott. Carlo Cancellieri
*skype*: ccancellieri
*Twitter*: @cancellieric
*LinkedIn*: http://it.linkedin.com/in/ccancellieri/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Are you sure you do it correctly according to
http://camel.apache.org/using-propertyplaceholder.html

On Fri, May 23, 2014 at 1:27 PM, carlo cancellieri
<c....@proximainformatica.com> wrote:
> I'm using the master branch so I'm on 2.14-SNAPSHOT
>
>
> 2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:
>
>> What version of Camel do you use? And have you tried with latest release.
>>
>> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
>> <c....@proximainformatica.com> wrote:
>> > Hi,
>> >  I'm trying to use the properties substitution in my tokenizer with no
>> > success.
>> > I've also just seen that the camel-spring.xsd definition does not
>> declare:
>> >
>> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
>> >
>> > In many complex types, so spring is not able to use the defined 'prop'
>> > namespace as prefix for the tokenizer and csv parser.
>> >
>> > This is my route and I'd like the substitute the 'csv.row.delimiter',
>> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)
>> >
>> > <route>
>> >   <!-- ACTUALLY READ THE CSV stream -->
>> >   <from uri="seda:splitting" />
>> >    <split parallelProcessing="false" stopOnException="false"
>> > streaming="true">
>> >   <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group" />
>> >     <unmarshal>
>> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
>> >              skipFirstLine="false" useMaps="true" configRef="csvConfig"
>> >              lazyLoad="false" />
>> >   </unmarshal>
>> >
>> >   <to uri="seda:processing" />
>> >   </split>
>> > </route>
>> >
>> > Is there a concrete need for this situation? If ther's not, you'll
>> consider
>> > to merge a contribution patch on this?
>> >
>> > Cheers,
>> > Carlo
>> >
>> > --
>> > Dott. Carlo Cancellieri
>> > *skype*: ccancellieri
>> > *Twitter*: @cancellieric
>> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: cibsen@redhat.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>> hawtio: http://hawt.io/
>> fabric8: http://fabric8.io/
>>
>
>
>
> --
> Dott. Carlo Cancellieri
> *skype*: ccancellieri
> *Twitter*: @cancellieric
> *LinkedIn*: http://it.linkedin.com/in/ccancellieri/



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by carlo cancellieri <c....@proximainformatica.com>.
I'm using the master branch so I'm on 2.14-SNAPSHOT


2014-05-23 13:18 GMT+02:00 Claus Ibsen <cl...@gmail.com>:

> What version of Camel do you use? And have you tried with latest release.
>
> On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
> <c....@proximainformatica.com> wrote:
> > Hi,
> >  I'm trying to use the properties substitution in my tokenizer with no
> > success.
> > I've also just seen that the camel-spring.xsd definition does not
> declare:
> >
> >  <xs:anyAttribute namespace="##other" processContents="skip"/>
> >
> > In many complex types, so spring is not able to use the defined 'prop'
> > namespace as prefix for the tokenizer and csv parser.
> >
> > This is my route and I'd like the substitute the 'csv.row.delimiter',
> > 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)
> >
> > <route>
> >   <!-- ACTUALLY READ THE CSV stream -->
> >   <from uri="seda:splitting" />
> >    <split parallelProcessing="false" stopOnException="false"
> > streaming="true">
> >   <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group" />
> >     <unmarshal>
> >  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
> >              skipFirstLine="false" useMaps="true" configRef="csvConfig"
> >              lazyLoad="false" />
> >   </unmarshal>
> >
> >   <to uri="seda:processing" />
> >   </split>
> > </route>
> >
> > Is there a concrete need for this situation? If ther's not, you'll
> consider
> > to merge a contribution patch on this?
> >
> > Cheers,
> > Carlo
> >
> > --
> > Dott. Carlo Cancellieri
> > *skype*: ccancellieri
> > *Twitter*: @cancellieric
> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>



-- 
Dott. Carlo Cancellieri
*skype*: ccancellieri
*Twitter*: @cancellieric
*LinkedIn*: http://it.linkedin.com/in/ccancellieri/

Re: Why tokenize (and some others) does not support properties substitution?

Posted by Claus Ibsen <cl...@gmail.com>.
What version of Camel do you use? And have you tried with latest release.

On Fri, May 23, 2014 at 1:17 PM, carlo cancellieri
<c....@proximainformatica.com> wrote:
> Hi,
>  I'm trying to use the properties substitution in my tokenizer with no
> success.
> I've also just seen that the camel-spring.xsd definition does not declare:
>
>  <xs:anyAttribute namespace="##other" processContents="skip"/>
>
> In many complex types, so spring is not able to use the defined 'prop'
> namespace as prefix for the tokenizer and csv parser.
>
> This is my route and I'd like the substitute the 'csv.row.delimiter',
> 'csv.row.group' (in the tokenizer) and csv.row.delimiter (in the csv)
>
> <route>
>   <!-- ACTUALLY READ THE CSV stream -->
>   <from uri="seda:splitting" />
>    <split parallelProcessing="false" stopOnException="false"
> streaming="true">
>   <tokenize prop:token="csv.row.delimiter" prop:group="csv.row.group" />
>     <unmarshal>
>  <csv autogenColumns="true" prop:delimiter="csv.row.delimiter"
>              skipFirstLine="false" useMaps="true" configRef="csvConfig"
>              lazyLoad="false" />
>   </unmarshal>
>
>   <to uri="seda:processing" />
>   </split>
> </route>
>
> Is there a concrete need for this situation? If ther's not, you'll consider
> to merge a contribution patch on this?
>
> Cheers,
> Carlo
>
> --
> Dott. Carlo Cancellieri
> *skype*: ccancellieri
> *Twitter*: @cancellieric
> *LinkedIn*: http://it.linkedin.com/in/ccancellieri/



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/