cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "metatech (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-6567) Allow alternate wildcard in Camel CXF Transport for Blueprint
Date Wed, 11 Jan 2017 12:03:59 GMT

     [ https://issues.apache.org/jira/browse/CXF-6567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

metatech updated CXF-6567:
--------------------------
    Description: 
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, the attribute "name" is defined as a "xs:string", whereas in Blueprint, the attribute
"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" />

[*EDIT*] : another solution
camel-cxf-transport/src/main/resources/schema/blueprint/camel.xsd

{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

  was:
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


> 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
>            Assignee: Akitoshi Yoshida
>         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, the attribute "name" is defined as a "xs:string", whereas in Blueprint, the
attribute "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" />
> [*EDIT*] : another solution
> camel-cxf-transport/src/main/resources/schema/blueprint/camel.xsd
> {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)

Mime
View raw message