class HTTPTransportFactory extends AbstractTransportFactory implements ConduitInitiator, DestinationFactory {

    public Destination getDestination(EndpointInfo endpointInfo, Bus bus) throws IOException {
        if (endpointInfo == null) {
            throw new IllegalArgumentException("EndpointInfo cannot be null");
        }
        r.lock();
        try {
            synchronized (registry) {
                AbstractHTTPDestination d = registry.getDestinationForPath(endpointInfo.getAddress());
                if (d == null) {
                    HttpDestinationFactory jettyFactory = bus.getExtension(HttpDestinationFactory.class);
                    String addr = endpointInfo.getAddress();
                    if (jettyFactory == null && addr != null && addr.startsWith("http")) {
                        String m =
                            new org.apache.cxf.common.i18n.Message("NO_HTTP_DESTINATION_FACTORY_FOUND",
                                                                   LOG).toString();
                        LOG.log(Level.SEVERE, m);
                        throw new IOException(m);
                    }
                    HttpDestinationFactory factory = null;
                    if (jettyFactory != null && (addr == null || addr.startsWith("http"))) {
                        factory = jettyFactory;
                    } else {
                        factory = new ServletDestinationFactory();
                    }

                    d = factory.createDestination(endpointInfo, bus, registry);
                    registry.addDestination(d);
                    configure(bus, d);
                    d.finalizeConfig();
                }
                return d;
            }
        } finally {
            r.unlock();
        }
    }

    public  HTTPTransportFactory();
    public  HTTPTransportFactory(DestinationRegistry registry);
    protected  HTTPTransportFactory(List<String> transportIds, DestinationRegistry registry);

}