Refine search
public byte[] invokeBytes(String address, String transport, byte[] message) throws Exception { EndpointInfo ei = new EndpointInfo(null, "http://schemas.xmlsoap.org/soap/http"); ei.setAddress(address); ConduitInitiatorManager conduitMgr = getBus().getExtension(ConduitInitiatorManager.class); ConduitInitiator conduitInit = conduitMgr.getConduitInitiator(transport); Conduit conduit = conduitInit.getConduit(ei); TestMessageObserver obs = new TestMessageObserver(); conduit.setMessageObserver(obs); Message m = new MessageImpl(); conduit.prepare(m); OutputStream os = m.getContent(OutputStream.class); os.write(message); // TODO: shouldn't have to do this. IO caching needs cleaning // up or possibly removal... os.flush(); os.close(); return obs.getResponseStream().toByteArray(); }
&& !DEFAULT_URI_RESOLVER_HANDLES.contains(base.getScheme())) { try { ConduitInitiatorManager mgr = bus.getExtension(ConduitInitiatorManager.class); ConduitInitiator ci = null; if ("http".equals(base.getScheme()) || "https".equals(base.getScheme())) { ci = mgr.getConduitInitiator("http://cxf.apache.org/transports/http"); ci = mgr.getConduitInitiatorForUri(base.toString()); EndpointInfo info = new EndpointInfo(); info.setName(new QName("http://cxf.apache.org", "TransportURIResolver")); info.setAddress(base.toString()); final Conduit c = ci.getConduit(info, bus); Message message = new MessageImpl(); Exchange exch = new ExchangeImpl(); message.setExchange(exch); message.put(Message.HTTP_REQUEST_METHOD, "GET"); c.setMessageObserver(new MessageObserver() { public void onMessage(Message message) { LoadingByteArrayOutputStream bout = new LoadingByteArrayOutputStream();
private void registerConduitInitiator(SoapServiceConduitInitiator initiator) { ConduitInitiatorManager extension = bus.getExtension(ConduitInitiatorManager.class); extension.registerConduitInitiator("http://cxf.apache.org/transports/http", initiator); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/", initiator); extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http/", initiator); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/http", initiator); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/http/", initiator); extension.registerConduitInitiator("http://www.w3.org/2003/05/soap/bindings/HTTP/", initiator); extension.registerConduitInitiator("http://cxf.apache.org/transports/http/configuration", initiator); extension.registerConduitInitiator("http://cxf.apache.org/bindings/xformat", initiator); extension.registerConduitInitiator("http://cxf.apache.org/transports/jms", initiator); extension.registerConduitInitiator("http://mule.codehaus.org/ws", initiator); }
public Conduit getConduit(EndpointInfo ei, EndpointReferenceType target, Bus bus) throws IOException { String address = target == null ? ei.getAddress() : target.getAddress().getValue(); BindingInfo bi = ei.getBinding(); String transId = ei.getTransportId(); if (bi instanceof SoapBindingInfo) { transId = ((SoapBindingInfo)bi).getTransportURI(); if (transId == null) { transId = ei.getTransportId(); } } ConduitInitiator conduitInit; try { ConduitInitiatorManager mgr = bus.getExtension(ConduitInitiatorManager.class); if (StringUtils.isEmpty(address) || address.startsWith("http") || address.startsWith("jms") || address.startsWith("soap.udp")) { conduitInit = mgr.getConduitInitiator(mapTransportURI(transId, address)); } else { conduitInit = mgr.getConduitInitiatorForUri(address); } if (conduitInit == null) { throw new RuntimeException(String.format(CANNOT_GET_CONDUIT_ERROR, address, transId)); } return conduitInit.getConduit(ei, target, bus); } catch (BusException e) { throw new RuntimeException(String.format(CANNOT_GET_CONDUIT_ERROR, address, transId)); } }
Conduit c = findCompatibleConduit(message); if (c == null) { Exchange exchange = message.getExchange(); EndpointInfo ei = endpoint.getEndpointInfo(); String transportID = ei.getTransportId(); try { ConduitInitiatorManager conduitInitiatorMgr = exchange.getBus() .getExtension(ConduitInitiatorManager.class); if (conduitInitiatorMgr != null) { ConduitInitiator conduitInitiator = conduitInitiatorMgr.getConduitInitiator(transportID); if (conduitInitiator != null) { String add = (String)message.get(Message.ENDPOINT_ADDRESS); String basePath = (String)message.get(Message.BASE_PATH); if (StringUtils.isEmpty(add) || add.equals(ei.getAddress())) { c = conduitInitiator.getConduit(ei); replaceEndpointAddressPropertyIfNeeded(message, add, c); } else { ad.setValue(StringUtils.isEmpty(basePath) ? add : basePath); epr.setAddress(ad); c = conduitInitiator.getConduit(ei, epr); + ei.getAddress()); if (c != null && c.getTarget() != null && c.getTarget().getAddress() != null) { replaceEndpointAddressPropertyIfNeeded(message, c.getTarget().getAddress().getValue(), c);
public Conduit getBackChannel(Message inMessage) throws IOException { Bus bus = inMessage.getExchange().getBus(); //this is a response targeting a decoupled endpoint. Treat it as a oneway so //we don't wait for a response. inMessage.getExchange().setOneWay(true); ConduitInitiator conduitInitiator = bus.getExtension(ConduitInitiatorManager.class) .getConduitInitiatorForUri(reference.getAddress().getValue()); if (conduitInitiator != null) { Conduit c = conduitInitiator.getConduit(ei, reference, bus); //ensure decoupled back channel input stream is closed c.setMessageObserver(new MessageObserver() { public void onMessage(Message m) { InputStream is = m.getContent(InputStream.class); if (is != null) { try { is.close(); } catch (Exception e) { //ignore } } } }); return c; } return null; } public MessageObserver getMessageObserver() {
protected Conduit getNextConduit(Message message) { Conduit answer = null; Exchange exchange = message.getExchange(); EndpointInfo ei = endpoint.getEndpointInfo(); String address = loadBalanceStrategy.getNextAlternateAddress(); if (overrideAddress(message)) { message.put(Message.ENDPOINT_ADDRESS, address); .getExtension(ConduitInitiatorManager.class); if (conduitInitiatorMgr != null) { ConduitInitiator conduitInitiator = conduitInitiatorMgr.getConduitInitiatorForUri(address); if (conduitInitiator != null) { EndpointReferenceType epr = new EndpointReferenceType(); ad.setValue(address); epr.setAddress(ad); answer = conduitInitiator.getConduit(ei, epr); answer.setMessageObserver(observer); } else { getLogger().warning("MessageObserver not found"); + ei.getAddress());
Conduit c = findCompatibleConduit(message); if (c == null) { Exchange exchange = message.getExchange(); EndpointInfo ei = endpoint.getEndpointInfo(); String transportID = ei.getTransportId(); try { ConduitInitiatorManager conduitInitiatorMgr = exchange.getBus() .getExtension(ConduitInitiatorManager.class); if (conduitInitiatorMgr != null) { ConduitInitiator conduitInitiator = conduitInitiatorMgr.getConduitInitiator(transportID); if (conduitInitiator != null) { c = createConduit(message, exchange, conduitInitiator); } else { getLogger().warning("ConduitInitiator not found: " + ei.getAddress()); if (c != null && c.getTarget() != null && c.getTarget().getAddress() != null) { replaceEndpointAddressPropertyIfNeeded(message, c.getTarget().getAddress().getValue(), c); message.resetContextCache(); message.put(Conduit.class, c); return c;
@Override protected WSDLEndpointFactory getWSDLEndpointFactory() { if (destinationFactory == null) { try { destinationFactory = getBus().getExtension(DestinationFactoryManager.class) .getDestinationFactory(transportId); } catch (Throwable t) { try { Object o = getBus().getExtension(ConduitInitiatorManager.class) .getConduitInitiator(transportId); if (o instanceof WSDLEndpointFactory) { return (WSDLEndpointFactory)o; } } catch (Throwable th) { //ignore } } } if (destinationFactory instanceof WSDLEndpointFactory) { return (WSDLEndpointFactory)destinationFactory; } return null; }
definition = getBus().getExtension(WSDLManager.class) .getDefinition(wsdl.getURL()); schemaUtil.getSchemas(definition, serInfo); serInfo = ei.getService(); List<ServiceInfo> serviceInfos = new ArrayList<ServiceInfo>(); serviceInfos.add(serInfo); .getDocument(swBuilder.build()); if (endpoint == null) { endpoint = ei.getName().getLocalPart(); ei.setAddress(locationURI.toString()); ConduitInitiatorManager conduitMgr = getBus().getExtension( ConduitInitiatorManager.class); conduitInit = conduitMgr.getConduitInitiator(ei .getTransportId()); conduit = conduitInit.getConduit(ei); CxfBcProviderMessageObserver obs = new CxfBcProviderMessageObserver(this); conduit.setMessageObserver(obs); checkWSRMInterceptors(); super.validate();
DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/http", transport); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/http", transport); ConduitInitiatorManager extension = bus.getExtension(ConduitInitiatorManager.class); try extension.getConduitInitiator("http://schemas.xmlsoap.org/soap/http"); extension.registerConduitInitiator("http://cxf.apache.org/transports/http", transport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/", transport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http", transport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http/", transport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/http", transport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/http/", transport); extension.registerConduitInitiator("http://www.w3.org/2003/05/soap/bindings/HTTP/", transport); extension.registerConduitInitiator("http://cxf.apache.org/transports/http/configuration", transport); extension.registerConduitInitiator("http://cxf.apache.org/bindings/xformat", transport); extension.registerConduitInitiator("http://cxf.apache.org/transports/jms", transport); extension.registerConduitInitiator(MuleUniversalTransport.TRANSPORT_ID, transport); bus.getOutInterceptors().add(new MuleProtocolHeadersOutInterceptor()); bus.getOutFaultInterceptors().add(new MuleProtocolHeadersOutInterceptor());
service = new ServiceImpl(si); BindingFactoryManager bfm = bus.getExtension(BindingFactoryManager.class); BindingFactory bindingFactory = bfm.getBindingFactory(soapVersion); BindingInfo bi = bindingFactory.createBindingInfo(service, si.addBinding(bi); if (transportId == null) { ConduitInitiatorManager cim = bus.getExtension(ConduitInitiatorManager.class); ConduitInitiator ci = cim.getConduitInitiatorForUri(location); transportId = ci.getTransportIds().get(0); EndpointInfo ei = new EndpointInfo(si, transportId); ei.setBinding(bi); ei.setName(epName == null ? iName : epName); ei.setAddress(location); si.addEndpoint(ei);
public static String getTransportId(Bus bus, String address) { ConduitInitiatorManager conduitInitiatorMgr = bus .getExtension(ConduitInitiatorManager.class); ConduitInitiator conduitInitiator = null; if (conduitInitiatorMgr != null) { conduitInitiator = conduitInitiatorMgr .getConduitInitiatorForUri(address); } if (conduitInitiator != null) { return conduitInitiator.getTransportIds().get(0); } else { return null; } }
/** * Add objects to the bus to set up the local transport, soap transport, soap bindings, and WSDL manager. * All you need to test databindings and other type-related operations. * @throws BusException */ public void setUp() throws BusException { SoapBindingFactory bindingFactory = new SoapBindingFactory(); bus.getExtension(BindingFactoryManager.class) .registerBindingFactory("http://schemas.xmlsoap.org/wsdl/soap/", bindingFactory); DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class); SoapTransportFactory soapDF = new SoapTransportFactory(); soapDF.setBus(bus); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/", soapDF); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/", soapDF); dfm.registerDestinationFactory("http://cxf.apache.org/transports/local", soapDF); localTransport = new LocalTransportFactory(); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/http", localTransport); dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/http", localTransport); dfm.registerDestinationFactory("http://cxf.apache.org/bindings/xformat", localTransport); dfm.registerDestinationFactory("http://cxf.apache.org/transports/local", localTransport); ConduitInitiatorManager extension = bus.getExtension(ConduitInitiatorManager.class); extension.registerConduitInitiator(LocalTransportFactory.TRANSPORT_ID, localTransport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/", localTransport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http", localTransport); extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/", localTransport); bus.setExtension(new WSDLManagerImpl(), WSDLManager.class); addNamespace("wsdl", SOAPConstants.WSDL11_NS); addNamespace("wsdlsoap", SOAPConstants.WSDL11_SOAP_NS); addNamespace("xsd", SOAPConstants.XSD); }
ConduitInitiatorManager mgr = bus.getExtension(ConduitInitiatorManager.class); ci = mgr.getConduitInitiator("http://cxf.apache.org/transports/http"); ci = mgr.getConduitInitiatorForUri(address);
private void modifyTransportIdPerAddress(EndpointInfo ei) { //get chance to set transportId according to the the publish address prefix //this is useful for local & camel transport if (transportId == null && getAddress() != null) { DestinationFactory df = getDestinationFactory(); if (df == null) { DestinationFactoryManager dfm = getBus().getExtension( DestinationFactoryManager.class); df = dfm.getDestinationFactoryForUri(getAddress()); } if (df != null) { transportId = df.getTransportIds().get(0); } else { // check conduits (the address could be supported on // client only) ConduitInitiatorManager cim = getBus().getExtension( ConduitInitiatorManager.class); ConduitInitiator ci = cim .getConduitInitiatorForUri(getAddress()); if (ci != null) { transportId = ci.getTransportIds().get(0); } } } if (transportId != null) { ei.setTransportId(transportId); } }
DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class); if (null != dfm && getTransportIds() != null) { for (String ns : getTransportIds()) { ConduitInitiatorManager cim = bus.getExtension(ConduitInitiatorManager.class); if (cim != null && getTransportIds() != null) { for (String ns : getTransportIds()) { try { if (cim.getConduitInitiator(ns) == this) { cim.deregisterConduitInitiator(ns);
if (ei.getBinding().getOperations().size() == 1) { opeName = ei.getBinding().getOperations().iterator().next().getName(); exchange.setOperation(opeName); } else { .getExtension(ConduitInitiatorManager.class) .getConduitInitiator(CxfSeComponent.JBI_TRANSPORT_ID);
JAXRSClientFactoryBean sf = new JAXRSClientFactoryBean(); sf.setResourceClass(serviceClass); sf.setAddress("http://" + getServerUrl() + "/cxf/" + serviceName); sf.setProviders(providers); ConduitInitiatorManager cim = sf.getBus().getExtension(ConduitInitiatorManager.class); cim.registerConduitInitiator("http://cxf.apache.org/transports/http", new HTTPTransportFactory(sf.getBus())); service = sf.create(serviceClass);
Conduit c = findCompatibleConduit(message); if (c == null) { Exchange exchange = message.getExchange(); EndpointInfo ei = endpoint.getEndpointInfo(); String transportID = ei.getTransportId(); try { ConduitInitiatorManager conduitInitiatorMgr = exchange.getBus() .getExtension(ConduitInitiatorManager.class); if (conduitInitiatorMgr != null) { ConduitInitiator conduitInitiator = conduitInitiatorMgr.getConduitInitiator(transportID); if (conduitInitiator != null) { String add = (String)message.get(Message.ENDPOINT_ADDRESS); String basePath = (String)message.get(Message.BASE_PATH); if (StringUtils.isEmpty(add) || add.equals(ei.getAddress())) { c = conduitInitiator.getConduit(ei); replaceEndpointAddressPropertyIfNeeded(message, add, c); } else { ad.setValue(StringUtils.isEmpty(basePath) ? add : basePath); epr.setAddress(ad); c = conduitInitiator.getConduit(ei, epr); + ei.getAddress()); if (c != null && c.getTarget() != null && c.getTarget().getAddress() != null) { replaceEndpointAddressPropertyIfNeeded(message, c.getTarget().getAddress().getValue(), c);