public DeliveryChannel getDeliveryChannel() throws MessagingException { if (this.channel == null) { if (endpoint != null) { this.channel = new EndpointDeliveryChannel(endpoint); } else { this.channel = new EndpointDeliveryChannel(context); } } return this.channel; }
public boolean sendSync(MessageExchange exchange) throws MessagingException { boolean processed = false; try { prepareExchange(exchange); handleExchange(exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); boolean ret = channel.sendSync(exchange); handleExchange(exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); if (ret) { resumeTx(exchange); processed = true; } return ret; } finally { if (!processed) { handleExchange(exchange, false); } } }
public void send(MessageExchange exchange) throws MessagingException { prepareExchange(exchange); handleExchange(exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); try { channel.send(exchange); } catch (MessagingException e) { handleExchange(exchange, false); throw e; } }
EndpointDeliveryChannel.setEndpoint(ep); handleExchange(ep, exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); ep.process(exchange); handleExchange(ep, exchange, false); EndpointDeliveryChannel.setEndpoint(null); Thread.currentThread().setContextClassLoader(oldCl);
protected void handleExchange(MessageExchange exchange, boolean add) throws MessagingException { Endpoint ep = getEndpoint(); ep.getServiceUnit().getComponent().handleExchange(ep, exchange, add); }
c.receive(ctx, msg); } finally { EndpointDeliveryChannel.setEndpoint(null);
protected void prepareExchange(MessageExchange exchange) throws MessagingException { Endpoint ep = getEndpoint(); ep.getServiceUnit().getComponent().prepareExchange(exchange, ep); }
public boolean sendSync(MessageExchange exchange, long timeout) throws MessagingException { boolean processed = false; try { prepareExchange(exchange); handleExchange(exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); boolean ret = channel.sendSync(exchange, timeout); handleExchange(exchange, exchange.getStatus() == ExchangeStatus.ACTIVE); if (ret) { resumeTx(exchange); processed = true; } return ret; } finally { if (!processed) { handleExchange(exchange, false); } } }
private void resumeTx(MessageExchange exchange) throws MessagingException { if (!getEndpoint().getServiceUnit().getComponent().getContainer().handleTransactions()) { Transaction tx = (Transaction) exchange.getProperty(MessageExchange.JTA_TRANSACTION_PROPERTY_NAME); if (tx != null) { TransactionManager txmgr = (TransactionManager) endpoint.getServiceUnit().getComponent().getComponentContext().getTransactionManager(); try { txmgr.resume(tx); } catch (InvalidTransactionException e) { throw new MessagingException(e); } catch (SystemException e) { throw new MessagingException(e); } } } }