Thank you so much for both the workaround and the additional features! -- Dan Davis
On 05/19/2015 03:49 AM, Ayache Khettar wrote: > Hi Dan > > Apologies for the late reply. Only yesterday I had a bit of time to look > into this in more details. I am able to reproduce it on the latest > serviceMix distribution. Looks like, when Camel schematron component is > deployed into SMX. it uses Xalan by default as opposed to Saxon. There is a > way of forcing saxon implementation but it should be done properly. A quick > solution is to fork the camel-scheamtron 2.14.1 version and set the line > numbering to false ( > https://github.com/apache/camel/blob/master/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/processor/TemplatesFactory.java > (line 68). That will solve your problem I believe. > > In the mean time, I will raise a Jira ticket for this issue to do following: > > 1- Expose line numbering support through uri parameter (false by default). > 2- Allow users to choose whether to use Saxon as the > transformerFactoryClass. > > Hopefully, I should check in the changes by the end of this weekend. > > Regards, > > Ayache > > > > > > On 13 May 2015 at 19:25, Davis, Daniel <davi...@si.edu> wrote: > >> I tried with this Java DSL route. My code is showing a dependency on >> Saxon in ServiceMIx but I gather the camel-schematron component is doing >> its own binding to Xalan. So it results in the same exception when >> trying to start the route. >> >> http://pastie.org/10187203 (Java and POM) >> >> -- >> Dan Davis >> >> On 05/13/2015 11:28 AM, Davis, Daniel wrote: >>> I have included the XML DSL version. I am working up a better Java DSL >>> version. I can provoke the issue in a default ServiceMix 5.4.0 install >>> with only the camel-schematron feature added. I have tried it with the >>> Apache Saxon-He bundle installed too. In the ServiceMix log, the route >>> fails to start with an exception that points to ServiceMix finding Xalan >>> and never finding Saxon (snippet below). The Schematron rules run >>> correctly in Oxygen. My running theory is that the camel-schematron >>> component version needs Saxon for the linenumbering feature but does not >>> have it set as a required import, but I am still learning about the >>> camel-schematron component. I am trying to get it working in the Java >>> DSL by resolving the Saxon dependencies in that code but that is not >>> done yet. >>> >>> Thank you for looking at this. >>> >>> -- >>> Dan Davis >>> >>> http://pastie.org/10186857 (Contains test XML DSL route, Schematron >>> rules, and test xml file) >>> >>> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to >>> resolve endpoint: >>> >> schematron:///opt/sidora/servicemix/Input/schemas/DeploymentManifest2014.sch >>> due to: Not supported: http://saxon.sf.net/feature/linenumbering >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:547)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:72)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:202)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:107)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:113)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:61)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:55)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:500)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:213)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:942)[116:org.apache.camel.camel-core:2.14.1] >>> ... 38 more >>> Caused by: java.lang.IllegalArgumentException: Not supported: >>> http://saxon.sf.net/feature/linenumbering >>> at >>> >> org.apache.xalan.processor.TransformerFactoryImpl.setAttribute(TransformerFactoryImpl.java:571)[:] >>> at >>> >> org.apache.camel.component.schematron.processor.TemplatesFactory.newTemplates(TemplatesFactory.java:68)[260:org.apache.camel.camel-schematron:2.14.1] >>> at >>> >> org.apache.camel.component.schematron.SchematronEndpoint.doStart(SchematronEndpoint.java:103)[260:org.apache.camel.camel-schematron:2.14.1] >>> at >>> >> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:2148)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1032)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:993)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:989)[116:org.apache.camel.camel-core:2.14.1] >>> at >>> >> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:543)[116:org.apache.camel.camel-core:2.14.1] >>> ... 47 more >>> >>> -- >>> Dan Davis >>> >>> On 05/13/2015 07:21 AM, Ayache Khettar wrote: >>>> Hi Daniel >>>> >>>> I will try to get a working example deployed into SMX this evening and >> see >>>> if I can reproduce the error. Could you include the source code of your >>>> working example so I could have a look? >>>> >>>> Regards, >>>> >>>> Ayache >>>> On 12 May 2015 at 23:49, Davis, Daniel <davi...@si.edu> wrote: >>>> >>>>> An update. I got rid of camel-saxon and the Saxon bundles. Then >>>>> created a Java DSL route packaged with Saxon-HE-9.6.0-5.jar. Same >> error >>>>> message. >>>>> >>>>> In smx, it looks like camel-schematron is looking for parsers from the >>>>> OSGI framework like - javax.xml.parsers,version=0.0.0 >>>>> from org.apache.felix.framework (0) >>>>> >>>>> I presume if it find Xalan first this is going to be a problem. Onward >>>>> and upward. >>>>> >>>>> -- >>>>> Dan >>>>> >>>>> On 05/12/2015 04:49 PM, Davis, Daniel wrote: >>>>>> <dependency> >>>>>>> + <groupId>net.sf.saxon</groupId> >>>>>>> + <artifactId>Saxon-HE</artifactId> >>>>>>> + <version>${saxon-version}</version> >>>>>>> + </dependency> >>>>>>> >>