| 1 package org.objectweb.celtix.tools.utils; 2 3 import javax.wsdl.Binding; 4 import javax.wsdl.BindingInput; 5 import javax.wsdl.BindingOperation; 6 import javax.wsdl.BindingOutput; 7 import javax.wsdl.Definition; 8 import javax.wsdl.Operation; 9 import javax.wsdl.Port; 10 import javax.wsdl.PortType; 11 import javax.wsdl.extensions.ExtensionRegistry; 12 import javax.wsdl.factory.WSDLFactory; 13 import javax.wsdl.xml.WSDLReader; 14 15 import org.objectweb.celtix.tools.common.ToolConstants; 16 import org.objectweb.celtix.tools.extensions.jaxws.JAXWSBinding; 17 import org.objectweb.celtix.tools.extensions.jaxws.JAXWSBindingDeserializer; 18 import org.objectweb.celtix.tools.extensions.jaxws.JAXWSBindingSerializer; 19 import org.objectweb.celtix.tools.extensions.jms.JMSAddress; 20 import org.objectweb.celtix.tools.extensions.jms.JMSAddressSerializer; 21 import org.objectweb.celtix.tools.extensions.xmlformat.XMLFormat; 22 import org.objectweb.celtix.tools.extensions.xmlformat.XMLFormatBinding; 23 import org.objectweb.celtix.tools.extensions.xmlformat.XMLFormatBindingSerializer; 24 import org.objectweb.celtix.tools.extensions.xmlformat.XMLFormatSerializer; 25 import org.objectweb.celtix.tools.extensions.xmlformat.XMLHttpAddress; 26 import org.objectweb.celtix.tools.extensions.xmlformat.XMLHttpSerializer; 27 28 public class WSDLExtensionRegister { 29 30 private WSDLFactory wsdlFactory; 31 private WSDLReader wsdlreader; 32 33 public WSDLExtensionRegister(WSDLFactory factory, WSDLReader reader) { 34 wsdlFactory = factory; 35 wsdlreader = reader; 36 } 37 38 public void registerExtenstions() { 39 ExtensionRegistry registry = wsdlreader.getExtensionRegistry(); 40 if (registry == null) { 41 registry = wsdlFactory.newPopulatedExtensionRegistry(); 42 } 43 registerJAXWSBinding(registry, Definition.class); 44 registerJAXWSBinding(registry, PortType.class); 45 registerJAXWSBinding(registry, Operation.class); 46 47 registerJAXWSBinding(registry, Binding.class); 48 registerJAXWSBinding(registry, BindingOperation.class); 49 50 registerJMSAddress(registry, Port.class); 51 52 registerXMLFormat(registry, BindingInput.class); 53 registerXMLFormat(registry, BindingOutput.class); 54 registerXMLFormatBinding(registry, Binding.class); 55 registerXMLHttpAddress(registry, Port.class); 56 57 wsdlreader.setExtensionRegistry(registry); 58 } 59 60 private void registerXMLFormat(ExtensionRegistry registry, Class clz) { 61 registry.registerSerializer(clz, ToolConstants.XML_FORMAT, new XMLFormatSerializer()); 62 63 registry.registerDeserializer(clz, ToolConstants.XML_FORMAT, new XMLFormatSerializer()); 64 registry.mapExtensionTypes(clz, ToolConstants.XML_FORMAT, XMLFormat.class); 65 } 66 67 private void registerXMLFormatBinding(ExtensionRegistry registry, Class clz) { 68 registry.registerSerializer(clz, ToolConstants.XML_BINDING_FORMAT, new XMLFormatBindingSerializer()); 69 70 registry 71 .registerDeserializer(clz, ToolConstants.XML_BINDING_FORMAT, new XMLFormatBindingSerializer()); 72 registry.mapExtensionTypes(clz, ToolConstants.XML_BINDING_FORMAT, XMLFormatBinding.class); 73 } 74 75 private void registerXMLHttpAddress(ExtensionRegistry registry, Class clz) { 76 registry.registerSerializer(clz, ToolConstants.XML_HTTP_ADDRESS, new XMLHttpSerializer()); 77 78 registry.registerDeserializer(clz, ToolConstants.XML_HTTP_ADDRESS, new XMLHttpSerializer()); 79 registry.mapExtensionTypes(clz, ToolConstants.XML_HTTP_ADDRESS, XMLHttpAddress.class); 80 } 81 82 private void registerJMSAddress(ExtensionRegistry registry, Class clz) { 83 registry.registerSerializer(clz, ToolConstants.JMS_ADDRESS, new JMSAddressSerializer()); 84 85 registry.registerDeserializer(clz, ToolConstants.JMS_ADDRESS, new JMSAddressSerializer()); 86 registry.mapExtensionTypes(clz, ToolConstants.JMS_ADDRESS, JMSAddress.class); 87 } 88 89 private void registerJAXWSBinding(ExtensionRegistry registry, Class clz) { 90 registry.registerSerializer(clz, ToolConstants.JAXWS_BINDINGS, new JAXWSBindingSerializer()); 91 92 registry.registerDeserializer(clz, ToolConstants.JAXWS_BINDINGS, new JAXWSBindingDeserializer()); 93 registry.mapExtensionTypes(clz, ToolConstants.JAXWS_BINDINGS, JAXWSBinding.class); 94 } 95 96 } 97 | Popular Tags |