On Apr 2, 2013, at 11:06 AM, Daniel Kulp <dk...@apache.org> wrote: > > On Apr 2, 2013, at 10:44 AM, Freeman Fang <freeman.f...@gmail.com> wrote: > >> As we don't have dependency="true" for woodstox bundles in cxf features.xml, >> so I think even cxf-api optionally import woodstox package, the woodstox >> bundle could get installed anyway > > Thats IF you are using Karaf and the Karaf features.xml. If you are in a > different OSGi environment, that wouldn't apply. Even if you use Karaf, if > you are manually installing bundles and not using the features (likely > pretty rare), you'd still have an issue.
That said, I guess if it is marked optional in the manifest, you would just get an exception at runtime and you could install the woodstox bundle and refresh cxf-api. I generally dislike finding out about these things at runtime though. :-( Dan > > Dan > > > >> ------------- >> Freeman(Yue) Fang >> >> Red Hat, Inc. >> FuseSource is now part of Red Hat >> Web: http://fusesource.com | http://www.redhat.com/ >> Twitter: freemanfang >> Blog: http://freemanfang.blogspot.com >> http://blog.sina.com.cn/u/1473905042 >> weibo: @Freeman小屋 >> >> On 2013-4-2, at 下午10:21, Aki Yoshida wrote: >> >>> Hi Dan, >>> I thought the allowInsecureParser option was intended to be used also in >>> osgi. >>> >>> aki >>> >>> 2013/4/2 Daniel Kulp <dk...@apache.org>: >>>> >>>> On Apr 2, 2013, at 5:25 AM, Aki Yoshida <elak...@gmail.com> wrote: >>>> >>>>> that generated a required woodstox import in cxf-api's manifest. That >>>>> needs to be changed to optional as well. >>>> >>>> No, I explicitly did not mark it optional to make sure the OBR would pull >>>> it in. >>>> >>>> Dan >>>> >>>> >>>>> 2013/4/2 Sergey Beryozkin <sberyoz...@gmail.com>: >>>>>> On 02/04/13 11:01, Romain Manni-Bucau wrote: >>>>>>> >>>>>>> Hi Sergey, >>>>>>> >>>>>>> tomee doesn't bring it by default because it is too fatty and not always >>>>>>> mandatory (same reason we don't bring jackson by default). >>>>>>> >>>>>>> i think the issue is not with close() but with the loadclass of >>>>>>> staxutils >>>>>>> which imports woodstox (i run with java 7) >>>>>> >>>>>> Yep, see it now... I guess we'll need to externalize a bit the explicit >>>>>> loading of the Woodstox factory or load it reflectively. >>>>>> Dan, what would be your preference ? >>>>>> >>>>>> Sergey >>>>>> >>>>>> >>>>>>> >>>>>>> *Romain Manni-Bucau* >>>>>>> *Twitter: @rmannibucau<https://twitter.com/rmannibucau>* >>>>>>> *Blog: >>>>>>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >>>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>>>> *Github: https://github.com/rmannibucau* >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2013/4/2 Sergey Beryozkin<sberyoz...@gmail.com> >>>>>>> >>>>>>>> Hi Romain >>>>>>>> >>>>>>>> The latest Woodstox has the superior security characteristics with >>>>>>>> regard >>>>>>>> to managing large payloads, and this is why it is preferred now, >>>>>>>> perhaps even TomEE might 'consider' swithcing to it in the future, >>>>>>>> however, StaxUtils checks a system >>>>>>>> "org.apache.cxf.stax.**allowInsecureParser" >>>>>>>> property, in fact at the moment it is set to 'true' by default to let >>>>>>>> containers like TomEE continue using their parsers of choice. >>>>>>>> >>>>>>>> So it appears it is a problem with StaxUtils.close...Or may be you can >>>>>>>> simply exclude Woodstox from the maven dependencies when upgrading ? >>>>>>>> >>>>>>>> Thanks, Sergey >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 02/04/13 10:42, Romain Manni-Bucau wrote: >>>>>>>> >>>>>>>>> when unmarshalling >>>>>>>>> (org.apache.cxf.jaxrs.**provider.JAXBElementProvider.**readFrom) the >>>>>>>>> reader is >>>>>>>>> closed thanks to StaxUtils.close(reader); call >>>>>>>>> >>>>>>>>> and it triggers: >>>>>>>>> >>>>>>>>> org.apache.cxf.jaxrs.client.**ClientWebApplicationException: >>>>>>>>> java.lang.**NoClassDefFoundError: com/ctc/wstx/stax/**WstxInputFactory >>>>>>>>> at org.apache.cxf.jaxrs.client.**WebClient.handleResponse(** >>>>>>>>> WebClient.java:871) >>>>>>>>> at >>>>>>>>> org.apache.cxf.jaxrs.client.**WebClient.doChainedInvocation(** >>>>>>>>> WebClient.java:841) >>>>>>>>> at org.apache.cxf.jaxrs.client.**WebClient.doInvoke(WebClient.** >>>>>>>>> java:768) >>>>>>>>> at >>>>>>>>> org.apache.cxf.jaxrs.client.**WebClient.doInvoke(WebClient.**java:729) >>>>>>>>> at >>>>>>>>> org.apache.cxf.jaxrs.client.**WebClient.invoke(WebClient.**java:345) >>>>>>>>> at org.apache.cxf.jaxrs.client.**WebClient.get(WebClient.java:**481) >>>>>>>>> at >>>>>>>>> org.superbiz.rest.**UserServiceTest.show(**UserServiceTest.java:95) >>>>>>>>> at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method) >>>>>>>>> at >>>>>>>>> sun.reflect.**NativeMethodAccessorImpl.**invoke(** >>>>>>>>> NativeMethodAccessorImpl.java:**57) >>>>>>>>> at >>>>>>>>> sun.reflect.**DelegatingMethodAccessorImpl.**invoke(** >>>>>>>>> DelegatingMethodAccessorImpl.**java:43) >>>>>>>>> at >>>>>>>>> org.junit.runners.model.**FrameworkMethod$1.**runReflectiveCall(** >>>>>>>>> FrameworkMethod.java:45) >>>>>>>>> at >>>>>>>>> org.junit.internal.runners.**model.ReflectiveCallable.run(** >>>>>>>>> ReflectiveCallable.java:15) >>>>>>>>> at >>>>>>>>> org.junit.runners.model.**FrameworkMethod.**invokeExplosively(** >>>>>>>>> FrameworkMethod.java:42) >>>>>>>>> at >>>>>>>>> org.junit.internal.runners.**statements.InvokeMethod.** >>>>>>>>> evaluate(InvokeMethod.java:20) >>>>>>>>> at org.junit.runners.**ParentRunner.runLeaf(**ParentRunner.java:263) >>>>>>>>> at >>>>>>>>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(** >>>>>>>>> BlockJUnit4ClassRunner.java:**68) >>>>>>>>> at >>>>>>>>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(** >>>>>>>>> BlockJUnit4ClassRunner.java:**47) >>>>>>>>> at org.junit.runners.**ParentRunner$3.run(**ParentRunner.java:231) >>>>>>>>> at >>>>>>>>> org.junit.runners.**ParentRunner$1.schedule(**ParentRunner.java:60) >>>>>>>>> at >>>>>>>>> org.junit.runners.**ParentRunner.runChildren(**ParentRunner.java:229) >>>>>>>>> at >>>>>>>>> org.junit.runners.**ParentRunner.access$000(**ParentRunner.java:50) >>>>>>>>> at >>>>>>>>> org.junit.runners.**ParentRunner$2.evaluate(**ParentRunner.java:222) >>>>>>>>> at >>>>>>>>> org.junit.internal.runners.**statements.RunBefores.** >>>>>>>>> evaluate(RunBefores.java:28) >>>>>>>>> at >>>>>>>>> org.junit.internal.runners.**statements.RunAfters.evaluate(** >>>>>>>>> RunAfters.java:30) >>>>>>>>> at org.junit.runners.**ParentRunner.run(ParentRunner.**java:300) >>>>>>>>> at org.junit.runner.JUnitCore.**run(JUnitCore.java:157) >>>>>>>>> at >>>>>>>>> com.intellij.junit4.**JUnit4IdeaTestRunner.**startRunnerWithArgs(** >>>>>>>>> JUnit4IdeaTestRunner.java:77) >>>>>>>>> at >>>>>>>>> >>>>>>>>> com.intellij.rt.execution.**junit.JUnitStarter.**prepareStreamsAndStart(* >>>>>>>>> *JUnitStarter.java:195) >>>>>>>>> at com.intellij.rt.execution.**junit.JUnitStarter.main(** >>>>>>>>> JUnitStarter.java:63) >>>>>>>>> at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method) >>>>>>>>> at >>>>>>>>> sun.reflect.**NativeMethodAccessorImpl.**invoke(** >>>>>>>>> NativeMethodAccessorImpl.java:**57) >>>>>>>>> at com.intellij.rt.execution.**application.AppMain.main(** >>>>>>>>> AppMain.java:120) >>>>>>>>> Caused by: java.lang.**NoClassDefFoundError: >>>>>>>>> com/ctc/wstx/stax/**WstxInputFactory >>>>>>>>> at >>>>>>>>> org.apache.cxf.jaxrs.provider.**JAXBElementProvider.readFrom(** >>>>>>>>> JAXBElementProvider.java:196) >>>>>>>>> at >>>>>>>>> org.apache.cxf.jaxrs.client.**AbstractClient.readBody(** >>>>>>>>> AbstractClient.java:446) >>>>>>>>> at org.apache.cxf.jaxrs.client.**WebClient.handleResponse(** >>>>>>>>> WebClient.java:857) >>>>>>>>> ... 34 more >>>>>>>>> Caused by: java.lang.**ClassNotFoundException: >>>>>>>>> com.ctc.wstx.stax.**WstxInputFactory >>>>>>>>> at java.net.URLClassLoader$1.run(**URLClassLoader.java:366) >>>>>>>>> at java.net.URLClassLoader$1.run(**URLClassLoader.java:355) >>>>>>>>> at java.security.**AccessController.doPrivileged(**Native Method) >>>>>>>>> at java.net.URLClassLoader.**findClass(URLClassLoader.java:**354) >>>>>>>>> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**423) >>>>>>>>> at sun.misc.Launcher$**AppClassLoader.loadClass(**Launcher.java:308) >>>>>>>>> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**356) >>>>>>>>> ... 37 more >>>>>>>>> >>>>>>>>> *Romain Manni-Bucau* >>>>>>>>> *Twitter: >>>>>>>>> @rmannibucau<https://twitter.**com/rmannibucau<https://twitter.com/rmannibucau> >>>>>>>>>> >>>>>>>>>> * >>>>>>>>> >>>>>>>>> *Blog: >>>>>>>>> **http://rmannibucau.**wordpress.com/*<http://rmannibucau.wordpress.com/*> >>>>>>>>> <http://**rmannibucau.wordpress.com/<http://rmannibucau.wordpress.com/>> >>>>>>>>> *LinkedIn: >>>>>>>>> **http://fr.linkedin.com/in/**rmannibucau*<http://fr.linkedin.com/in/rmannibucau*> >>>>>>>>> *Github: >>>>>>>>> https://github.com/**rmannibucau*<https://github.com/rmannibucau*> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> 2013/4/2 Freeman Fang<freeman.f...@gmail.com> >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I believe it's just compile time dependency, during runtime, you >>>>>>>>>> still >>>>>>>>>> can >>>>>>>>>> use any other stax parser for now. >>>>>>>>>> >>>>>>>>>> What's the error you run into? >>>>>>>>>> ------------- >>>>>>>>>> Freeman(Yue) Fang >>>>>>>>>> >>>>>>>>>> Red Hat, Inc. >>>>>>>>>> FuseSource is now part of Red Hat >>>>>>>>>> Web: http://fusesource.com | http://www.redhat.com/ >>>>>>>>>> Twitter: freemanfang >>>>>>>>>> Blog: >>>>>>>>>> http://freemanfang.blogspot.**com<http://freemanfang.blogspot.com> >>>>>>>>>> >>>>>>>>>> http://blog.sina.com.cn/u/**1473905042<http://blog.sina.com.cn/u/1473905042> >>>>>>>>>> weibo: @Freeman小屋 >>>>>>>>>> >>>>>>>>>> On 2013-4-2, at 下午3:19, Romain Manni-Bucau wrote: >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> seems woodstox is now mandatory to use cxf (tested with v2.6.7) >>>>>>>>>>> because >>>>>>>>>>> of org.apache.cxf.staxutils.**StaxUtils >>>>>>>>>>> >>>>>>>>>>> is it normal? >>>>>>>>>>> >>>>>>>>>>> in TomEE we were remove it by default so basically it means we can't >>>>>>>>>>> >>>>>>>>>> upgrade >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Romain Manni-Bucau* >>>>>>>>>>> *Twitter: >>>>>>>>>>> @rmannibucau<https://twitter.**com/rmannibucau<https://twitter.com/rmannibucau> >>>>>>>>>>>> >>>>>>>>>>>> * >>>>>>>>>>> >>>>>>>>>>> *Blog: >>>>>>>>>>> **http://rmannibucau.**wordpress.com/*<http://rmannibucau.wordpress.com/*> >>>>>>>>>>> < >>>>>>>>>>> >>>>>>>>>> http://rmannibucau.wordpress.**com/<http://rmannibucau.wordpress.com/>> >>>>>>>>>> >>>>>>>>>>> *LinkedIn: >>>>>>>>>>> **http://fr.linkedin.com/in/**rmannibucau*<http://fr.linkedin.com/in/rmannibucau*> >>>>>>>>>>> *Github: >>>>>>>>>>> https://github.com/**rmannibucau*<https://github.com/rmannibucau*> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Sergey Beryozkin >>>>>>>> >>>>>>>> Talend Community Coders >>>>>>>> http://coders.talend.com/ >>>>>>>> >>>>>>>> Blog: http://sberyozkin.blogspot.com >>>>>>>> >>>>>>> >>>>>> >>>> >>>> -- >>>> Daniel Kulp >>>> dk...@apache.org - http://dankulp.com/blog >>>> Talend Community Coder - http://coders.talend.com >>>> >> > > -- > Daniel Kulp > dk...@apache.org - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com > -- Daniel Kulp dk...@apache.org - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com