package org.talend.esb.mep.requestcallback.impl.wsdl; import javax.wsdl.Binding; import javax.wsdl.Definition; import javax.xml.bind.JAXBException; import org.apache.cxf.Bus; import org.apache.cxf.common.injection.NoJSR250Annotations; import org.apache.cxf.wsdl.JAXBExtensionHelper; import org.apache.cxf.wsdl.WSDLExtensionLoader; import org.apache.cxf.wsdl.WSDLManager; @NoJSR250Annotations public class RequestCallbackWSDLExtensionLoader implements WSDLExtensionLoader { private static final Class<?>[][] EXTENSORS = new Class[][] { {Binding.class, CallbackExtension.class}, {Definition.class, PLType.class} }; public RequestCallbackWSDLExtensionLoader(Bus bus) { WSDLManager manager = bus.getExtension(WSDLManager.class); for (Class<?>[] ext : EXTENSORS) { addExtensions(manager, ext[0], ext[1]); } } public void addExtensions(WSDLManager manager, Class<?> parentType, Class<?> elementType) { try { JAXBExtensionHelper.addExtensions( manager.getExtensionRegistry(), parentType, elementType, null, getClass().getClassLoader()); } catch (JAXBException e) { // ignore, won't support XML } } }