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

Andriy Redko resolved CXF-8366.
-------------------------------
    Resolution: Fixed

> allow to disable asmhelper generation
> -------------------------------------
>
>                 Key: CXF-8366
>                 URL: https://issues.apache.org/jira/browse/CXF-8366
>             Project: CXF
>          Issue Type: Sub-task
>          Components: Core
>    Affects Versions: 3.4.0
>         Environment: all env. Win 10 on my laptor.
>            Reporter: olivier dufour
>            Priority: Major
>
> Hello,
> I have succeed to make cxf running on quarkus in native. Goal of quarkus is 
> to reduce memory footprint and speed up run time. 
> So, we have to move asm generation to build time.
> I have sucessfully done it on native part by doing susbstitution but it is 
> not possible on jvm for all asmhelper usage. Because some asm generation are 
> done from static method so it can not been overriden or substitute on parent 
> class easily.
> Goal is to be able to override some class and inject the new instance to 
> inject the class generated by quarkus on compile time directly to cxf and 
> avoid asm generation during runtime.
> SOLUTION 1:
> I need that we have a factory class with singleton pattern wherer we can set 
> instance and override and which can be set on CXFNonSpringServlet and 
> JaxWsProxyFactoryBean.
> SOLUTION 2:
>  add static method to add method to ASMHelper tocache class ever generated.
> Map<String, Class<?>> cache;
> and proxy this method in JAXBExtensionHelper/JAXBUtils /WrapperHelperCompiler 
> with addGeneratedClass method and before generating class check if already in 
> cache.
> JAXBContextInitializer is not static and use a pure ASMHelper. I propose to 
> use JAXBUtils cache and check it before generating code.
>  
> List of main class with asm generation:
>  - org.apache.cxf.wsdl.JAXBExtensionHelper.createExtensionClass is a static 
> method.
> So it can not been override and I can not change the class instance and 
> inject it.
> Can you change that to a factory and an instance.  (best is to have the 
> factory
> - org.apache.cxf.common.jaxb.JAXBUtils .createNamespaceWrapper
>  - org.apache.cxf.endpoint.dynamic.TypeClassInitializer$ExceptionCreator. 
> createExceptionClass
> - org.apache.cxf.jaxb.JAXBDataBinding.compileWrapperHelper or 
> WrapperHelperCompiler 
> - org.apache.cxf.jaxb.JAXBContextInitializer.createFactory



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to