[
https://issues.apache.org/jira/browse/CXF-6567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14727216#comment-14727216
]
metatech commented on CXF-6567:
-------------------------------
Hi Aki,
Thanks for your comment.
Indeed, my solution implies that "__WILDCARD__" becomes a "reserved" string,
which must not used in beans "id".
Please note that there is a double underscore (which is converted by JIRA to
italics), so the possible clash should be very rare.
Regarding your proposition to skip datatype validation, it is probably not
trivial to selectively disable validation on the XML validator. Are you aware
of an existing option in XSD validators which implements it ?
> Allow alternate wildcard in Camel CXF Transport for Blueprint
> -------------------------------------------------------------
>
> Key: CXF-6567
> URL: https://issues.apache.org/jira/browse/CXF-6567
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.0.5
> Environment: ServiceMix 5.4.1
> Reporter: metatech
> Attachments: CXF_blueprint_alternate_wildcard.diff
>
>
> We are trying to use Camel CXF Transport within Blueprint.
> We followed the intructions on this page :
> http://camel.apache.org/camel-transport-for-cxf.html
> However, when defining a camel destination with an ID containing an asterisk
> and dot :
> <camel:destination id="*.camel-destination" camelContextId="camel1" />
> Blueprint XSD validation fails with the exception below [1].
> In Spring, an ID is defined as a "xs:string", whereas in Blueprint, an ID is
> defined as "NCName" (non-colonized name), which disallows "asterisk".
> Here is a patch to support an alternate wildcard which uses only characters
> allowed ("__WILDCARD__") to replace the asterisk ("*").
> <camel:destination id="__WILDCARD__.camel-destination"
> camelContextId="camel1" />
> {code}
> 2015-08-11 17:10:16,014 [int Extender: 1] ERROR BlueprintContainerImpl
> - Unable to start blueprint container for bundle CxfTransportBlueprintTest
> org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to
> validate xml
> at org.apache.aries.blueprint.parser.Parser.validate(Parser.java:288)
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:313)
>
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:261)
>
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
>
> at
> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
>
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
> at java.lang.Thread.run(Thread.java:744)
> Caused by: org.xml.sax.SAXParseException; cvc-datatype-valid.1.2.1:
> '*.camel-destination' is not a valid value for 'NCName'.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
>
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
>
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processOneAttribute(XMLSchemaValidator.java:2832)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2769)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2056)
>
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:746)
>
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.beginNode(DOMValidatorHelper.java:277)
>
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:244)
>
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:190)
>
> at
> com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:109)
>
> at javax.xml.validation.Validator.validate(Validator.java:124)
> at org.apache.aries.blueprint.parser.Parser.validate(Parser.java:285)
> ... 13 more
> {code}
> http://camel.465427.n5.nabble.com/Camel-CXF-Transport-works-within-Blueprint-only-when-XSD-validation-is-disabled-td5770593.html#a5771007
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)