protected void assertMessagesReceived(MessageList messageList, int count) throws MessagingException, TransformerException, ParserConfigurationException, IOException, SAXException { messageList.assertMessagesReceived(count); List list = messageList.getMessages(); int counter = 0; for (Iterator iter = list.iterator(); iter.hasNext();) { NormalizedMessage message = (NormalizedMessage) iter.next(); LOGGER.info("Message {} is: {}", counter++, message); LOGGER.info(transformer.contentToString(message)); } }
@Override protected void processInOnly(MessageExchange exchange, NormalizedMessage in) throws Exception { NormalizedMessage out = exchange.createMessage(); Fault fault = exchange.createFault(); this.startValidation(exchange, in, out, fault); if (fault.getContent() != null) { throw new RuntimeException(sourceTransformer.contentToString(fault)); } }
protected Document createDocument(MessageExchange me) throws MessagingException { try { // This could be in a separated class (a LuceneDocumentProvider) SourceTransformer st = new SourceTransformer(); Document d = new Document(); d.add(Field.Keyword("org.apache.servicemix.exchangeid", me.getExchangeId())); d.add(Field.Keyword("org.apache.servicemix.exchangestatus", String.valueOf(me.getStatus()))); String[] types = {"in", "out", "fault" }; for (int i = 0; i < types.length; i++) { String type = types[i]; NormalizedMessage nm = me.getMessage(type); if (nm != null) { d.add(Field.UnStored("org.apache.servicemix." + type + ".contents", st.contentToString(nm))); addMessagePropertiesToDocument(nm, d, type); } } return d; } catch (MessagingException mse) { throw mse; } catch (Exception ex) { throw new MessagingException("Error while creating Lucene Document", ex); } }
public NormalizedMessageImpl(NormalizedMessage message) throws MessagingException { try { String str = new SourceTransformer().contentToString(message); if (str != null) { this.content = new StringSource(str); } for (Iterator it = message.getPropertyNames().iterator(); it.hasNext();) { String name = (String) it.next(); this.properties.put(name, message.getProperty(name)); } for (Iterator it = message.getAttachmentNames().iterator(); it.hasNext();) { String name = (String) it.next(); DataHandler dh = message.getAttachment(name); DataSource ds = dh.getDataSource(); if (!(ds instanceof ByteArrayDataSource)) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); FileUtil.copyInputStream(ds.getInputStream(), baos); ByteArrayDataSource bads = new ByteArrayDataSource(baos.toByteArray(), ds.getContentType()); bads.setName(ds.getName()); dh = new DataHandler(bads); } this.attachments.put(name, dh); } this.subject = message.getSecuritySubject(); } catch (MessagingException e) { throw e; } catch (Exception e) { throw new MessagingException(e); } }
/** * Convert the given {@link NormalizedMessage} instance's content to a re-readable {@link Source} This allows the * content to be read more than once (e.g. for XPath evaluation or auditing). * * @param message * the {@link NormalizedMessage} to convert the content for * @throws MessagingException */ public static void enableContentRereadability(NormalizedMessage message) throws MessagingException { if (message.getContent() instanceof StreamSource) { try { String content = new SourceTransformer().contentToString(message); if (content != null) { message.setContent(new StringSource(content)); } } catch (TransformerException e) { throw new MessagingException("Unable to convert message content into StringSource", e); } catch (ParserConfigurationException e) { throw new MessagingException("Unable to convert message content into StringSource", e); } catch (IOException e) { throw new MessagingException("Unable to convert message content into StringSource", e); } catch (SAXException e) { throw new MessagingException("Unable to convert message content into StringSource", e); } } }
throw FaultException.newInstance(me); } else if (me.getMessage("out") != null) { return new SourceTransformer().contentToString(me.getMessage("out"));
String fault = new SourceTransformer().contentToString(me.getFault()); done(me); fail(exchange, new FaultException(fault, null, null)); String fault = new SourceTransformer().contentToString(tme.getFault()); done(tme); fail(exchange, new FaultException(fault, null, null));
String fault = new SourceTransformer().contentToString(me.getFault()); done(me); fail(exchange, new FaultException(fault, null, null));
String fault = new SourceTransformer().contentToString(exchange.getFault()); fail(me, new FaultException(fault, null, null)); done(exchange);
if (me.getFault() != null) { JDOMResult result = new JDOMResult(); String str = getTransformer().contentToString(me.getFault()); getTransformer().toResult(new StringSource(str), result); Element e = result.getDocument().getRootElement();