public void registerExternalEndpoint()

in jbi/runtime/src/main/java/org/apache/servicemix/jbi/runtime/impl/ComponentContextImpl.java [140:174]


    public void registerExternalEndpoint(ServiceEndpoint externalEndpoint) throws JBIException {
        try {
            QName serviceName = externalEndpoint.getServiceName();
            String endpointName = externalEndpoint.getEndpointName();
            Map<String, Object> props = new HashMap<String, Object>();
            props.put(Endpoint.NAME, serviceName.toString() + ":" + endpointName);
            props.put(Endpoint.SERVICE_NAME, serviceName.toString());
            props.put(Endpoint.ENDPOINT_NAME, endpointName);
            props.put(Endpoint.UNTARGETABLE, Boolean.TRUE.toString());
            props.put(EXTERNAL_ENDPOINT, Boolean.TRUE.toString());
            props.put(ServiceEndpoint.class.getName(), externalEndpoint);
            QName[] interfaceNames = externalEndpoint.getInterfaces();
            if (interfaceNames != null) {
                StringBuilder sb = new StringBuilder();
                for (QName itf : interfaceNames) {
                    if (sb.length() > 0) {
                        sb.append(",");
                    }
                    sb.append(itf.toString());
                }
                props.put(Endpoint.INTERFACE_NAME, sb.toString());
            }
            Document doc = component.getComponent().getServiceDescription(externalEndpoint);
            if (doc != null) {
                String data = DOMUtil.asXML(doc);
                String url = componentRegistry.getDocumentRepository().register(data.getBytes());
                props.put(Endpoint.WSDL_URL, url);
            }
            EndpointImpl endpoint = new EndpointImpl(props);
            endpoint.setQueue(queue);
            componentRegistry.getNmr().getEndpointRegistry().register(endpoint,  props);
        } catch (TransformerException e) {
            throw new JBIException(e);
        }
    }