Search in sources :

Example 16 with Import

use of javax.wsdl.Import in project cxf by apache.

the class WSDLDefinitionBuilder method parseImports.

private void parseImports(Definition def) {
    for (Import impt : getImports(def)) {
        if (!importedDefinitions.contains(impt.getDefinition())) {
            importedDefinitions.add(impt.getDefinition());
            parseImports(impt.getDefinition());
        }
    }
}
Also used : Import(javax.wsdl.Import)

Example 17 with Import

use of javax.wsdl.Import in project cxf by apache.

the class SchemaUtil method parseImports.

private void parseImports(Definition def, List<Definition> defList) {
    List<Import> importList = new ArrayList<>();
    Collection<List<Import>> ilist = cast(def.getImports().values());
    for (List<Import> list : ilist) {
        importList.addAll(list);
    }
    for (Import impt : importList) {
        if (!defList.contains(impt.getDefinition())) {
            defList.add(impt.getDefinition());
            parseImports(impt.getDefinition(), defList);
        }
    }
}
Also used : SchemaImport(javax.wsdl.extensions.schema.SchemaImport) Import(javax.wsdl.Import) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List)

Example 18 with Import

use of javax.wsdl.Import in project cxf by apache.

the class WSDLServiceBuilder method buildServices.

private List<ServiceInfo> buildServices(Definition def, Service serv, QName endpointName, DescriptionInfo d) {
    Map<QName, ServiceInfo> services = new LinkedHashMap<>();
    DescriptionInfo description = d;
    if (null == description) {
        description = new DescriptionInfo();
        if (recordOriginal) {
            description.setProperty(WSDL_DEFINITION, def);
        }
        description.setName(def.getQName());
        description.setBaseURI(def.getDocumentBaseURI());
        copyExtensors(description, def.getExtensibilityElements());
        copyExtensionAttributes(description, def);
        Set<Definition> done = new HashSet<>();
        done.add(def);
        Collection<List<Import>> values = CastUtils.cast(def.getImports().values());
        for (List<Import> imports : values) {
            for (Import imp : imports) {
                if (!done.contains(imp.getDefinition())) {
                    done.add(imp.getDefinition());
                    copyExtensors(description, imp.getExtensibilityElements());
                    copyExtensionAttributes(description, imp);
                    copyExtensors(description, imp.getDefinition().getExtensibilityElements());
                    copyExtensionAttributes(description, imp.getDefinition());
                }
            }
        }
    }
    for (Port port : cast(serv.getPorts().values(), Port.class)) {
        if (endpointName != null && !endpointName.getLocalPart().equals(port.getName())) {
            continue;
        }
        Binding binding = port.getBinding();
        PortType bindingPt = binding.getPortType();
        if (bindingPt == null) {
            org.apache.cxf.common.i18n.Message msg = new org.apache.cxf.common.i18n.Message("BINDING_MISSING_TYPE", LOG, binding.getQName());
            throw new WSDLRuntimeException(msg);
        }
        // TODO: wsdl4j's bug. if there is recursive import,
        // wsdl4j can not get operation input message
        PortType pt = def.getPortType(bindingPt.getQName());
        if (pt == null) {
            pt = bindingPt;
        }
        ServiceInfo service = services.get(pt.getQName());
        if (service == null) {
            service = new ServiceInfo();
            service.setDescription(description);
            description.getDescribed().add(service);
            if (recordOriginal) {
                service.setProperty(WSDL_DEFINITION, def);
                service.setProperty(WSDL_SERVICE, serv);
            }
            getSchemas(def, service);
            copyDocumentation(service, serv);
            service.setProperty(WSDL_SCHEMA_ELEMENT_LIST, this.schemaList);
            service.setTargetNamespace(def.getTargetNamespace());
            service.setName(serv.getQName());
            copyExtensors(service, serv.getExtensibilityElements());
            copyExtensionAttributes(service, serv);
            buildInterface(service, pt);
            services.put(pt.getQName(), service);
        }
        BindingInfo bi = service.getBinding(binding.getQName());
        if (bi == null) {
            bi = buildBinding(service, binding);
        }
        buildEndpoint(service, bi, port);
    }
    return new ArrayList<>(services.values());
}
Also used : Import(javax.wsdl.Import) Message(javax.wsdl.Message) Port(javax.wsdl.Port) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) ServiceInfo(org.apache.cxf.service.model.ServiceInfo) BindingInfo(org.apache.cxf.service.model.BindingInfo) List(java.util.List) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) SOAPBinding(javax.wsdl.extensions.soap.SOAPBinding) SOAP12Binding(javax.wsdl.extensions.soap12.SOAP12Binding) Binding(javax.wsdl.Binding) QName(javax.xml.namespace.QName) Definition(javax.wsdl.Definition) DescriptionInfo(org.apache.cxf.service.model.DescriptionInfo) PortType(javax.wsdl.PortType)

Aggregations

Import (javax.wsdl.Import)18 List (java.util.List)9 Definition (javax.wsdl.Definition)8 ArrayList (java.util.ArrayList)6 SchemaImport (javax.wsdl.extensions.schema.SchemaImport)5 Binding (javax.wsdl.Binding)4 PortType (javax.wsdl.PortType)4 Collection (java.util.Collection)3 Map (java.util.Map)3 Message (javax.wsdl.Message)3 Port (javax.wsdl.Port)3 Types (javax.wsdl.Types)3 HashSet (java.util.HashSet)2 Iterator (java.util.Iterator)2 Service (javax.wsdl.Service)2 WSDLException (javax.wsdl.WSDLException)2 ExtensibilityElement (javax.wsdl.extensions.ExtensibilityElement)2 Schema (javax.wsdl.extensions.schema.Schema)2 SOAPBinding (javax.wsdl.extensions.soap.SOAPBinding)2 WSDLWriter (javax.wsdl.xml.WSDLWriter)2