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 <[email protected]>: > 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 > <[email protected]> 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 <[email protected]>: > > > >> 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 > >> <[email protected]> wrote: > >> > I'm using the master branch so I'm on 2.14-SNAPSHOT > >> > > >> > > >> > 2014-05-23 13:18 GMT+02:00 Claus Ibsen <[email protected]>: > >> > > >> >> 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 > >> >> <[email protected]> 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: [email protected] > >> >> 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: [email protected] > >> 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: [email protected] > 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/
