public void testSplitMessageWithHeader2() throws Exception {
    LineCountSplitter s = new LineCountSplitter();
    s.setKeepHeaderLines(2);
    s.setSplitOnLine(10);
    s.setIgnoreBlankLines(true);

    final String HEADER_LINE_1 = "HEADER LINE 1";
    final String HEADER_LINE_2 = "HEADER LINE 2";
    List<AdaptrisMessage> result =
        toList(
            s.splitMessage(
                createLineCountMessageInputWithHeader(
                    new String[] {HEADER_LINE_1, HEADER_LINE_2})));

    assertEquals("5 split messages", 5, result.size());

    for (AdaptrisMessage m : result) {
      try (Reader reader = m.getReader()) {
        List<String> lines = IOUtils.readLines(reader);
        assertEquals("12 lines per message", 12, lines.size());
        assertEquals("Must be header line 1", HEADER_LINE_1, lines.get(0));
        assertEquals("Must be header line 2", HEADER_LINE_2, lines.get(1));
        for (int i = 2; i < 12; i++) {
          assertEquals("Must be regular line", LINE, lines.get(i));
        }
      }
    }
  }
 protected void assertMessages(List<AdaptrisMessage> list, int count) {
   assertEquals("All files consumed/produced", count, list.size());
   for (AdaptrisMessage m : list) {
     assertTrue(m.containsKey(CoreConstants.ORIGINAL_NAME_KEY));
     assertEquals(PAYLOAD, m.getStringPayload().trim());
   }
 }
 public void testSplitMessage() throws Exception {
   String obj = "ABCDEFG";
   msg.addObjectHeader(obj, obj);
   LineCountSplitter s = new LineCountSplitter();
   List<AdaptrisMessage> result = toList(s.splitMessage(msg));
   assertEquals("10 split messages", 10, result.size());
   for (AdaptrisMessage m : result) {
     assertFalse("Should not contain object metadata", m.getObjectHeaders().containsKey(obj));
   }
 }
  public void testSplitMessageWithHeader1() throws Exception {
    LineCountSplitter s = new LineCountSplitter();
    s.setKeepHeaderLines(1);
    s.setSplitOnLine(1);
    s.setIgnoreBlankLines(true);

    final String HEADER_TEXT = "HEADER LINE 1";
    List<AdaptrisMessage> result =
        toList(s.splitMessage(createLineCountMessageInputWithHeader(new String[] {HEADER_TEXT})));

    assertEquals("50 split messages", 50, result.size());

    for (AdaptrisMessage m : result) {
      List<String> lines = IOUtils.readLines(m.getReader());
      assertEquals("2 lines per message", 2, lines.size());
      assertEquals("Must be header line", HEADER_TEXT, lines.get(0));
      assertEquals("Must be regular line", LINE, lines.get(1));
    }
  }
  @Override
  public void handleHeaders(
      AdaptrisMessage message, HttpServletRequest request, String itemPrefix) {
    String prefix = defaultIfEmpty(itemPrefix, "");

    for (Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements(); ) {
      String key = (String) e.nextElement();
      String value = request.getHeader(key);
      String metadataKey = prefix + key;
      log.trace("Adding Object Metadata [{}: {}]", metadataKey, value);
      message.addObjectMetadata(metadataKey, value);
    }
  }
 public void processCorrelationId(Message src, AdaptrisMessage dest) throws JMSException {
   if (isEmpty(getMetadataKey())) {
     log.warn("Metadata key for correlation ID not configured");
   } else {
     String id = src.getJMSCorrelationID();
     if (isEmpty(id)) {
       log.warn("No Correlation Id available");
     } else {
       dest.addMetadata(getMetadataKey(), id);
       log.debug("Set metadata key [" + getMetadataKey() + "] to [" + id + "]");
     }
   }
 }
 /**
  * If no metadata key is configured or if no value is stored against the configured key a message
  * is logged to this effect and no Exception is thrown.
  *
  * @see com.adaptris.core.jms.CorrelationIdSource#processCorrelationId
  *     (com.adaptris.core.AdaptrisMessage, javax.jms.Message)
  */
 public void processCorrelationId(AdaptrisMessage src, Message dest) throws JMSException {
   if (isEmpty(getMetadataKey())) {
     log.warn("metadata key for correlation ID not configured");
   } else {
     String correlationId = src.getMetadataValue(getMetadataKey());
     if (isEmpty(correlationId)) {
       log.warn("no value for metadata key [" + getMetadataKey() + "]");
     } else {
       dest.setJMSCorrelationID(correlationId);
       log.debug("set correlation ID to [" + correlationId + "]");
     }
   }
 }
 /**
  * @see
  *     com.adaptris.core.services.splitter.MessageSplitterServiceImp#handleSplitMessage(com.adaptris.core.AdaptrisMessage)
  */
 @Override
 public void handleSplitMessage(AdaptrisMessage msg) throws ServiceException {
   try {
     service.doService(msg);
   } finally {
     if (eventHandler != null && sendEvents()) {
       try {
         eventHandler.send(msg.getMessageLifecycleEvent());
       } catch (CoreException e) {
         throw new ServiceException(e);
       }
     }
   }
 }
 public void testDoServiceWithLineCountSplitter() throws Exception {
   msg.addMetadata("key", "value");
   execute(service, msg);
   assertEquals("Number of messages", 10, producer.getMessages().size());
 }
 public void testDefaultSplit_WithCharEncoding() throws Exception {
   LineCountSplitter s = new LineCountSplitter();
   msg.setContentEncoding(System.getProperty("file.encoding"));
   List<AdaptrisMessage> msgs = toList(s.splitMessage(msg));
   assertEquals("10 split messages", 10, msgs.size());
 }
 private void increment(AdaptrisMessage msg, MetadataStatistic stat) {
   String value = msg.getMetadataValue(getMetadataKey());
   if (!isEmpty(value)) {
     stat.increment(value);
   }
 }
  /**
   * Sets 'break-out' metadata for testing.
   *
   * @param msg the message to apply service to
   * @throws ServiceException wrapping any underlying <code>Exception</code>s
   */
  public void doService(AdaptrisMessage msg) throws ServiceException {

    msg.addMetadata(CoreConstants.STOP_PROCESSING_KEY, CoreConstants.STOP_PROCESSING_VALUE);
  }
 public void doService(AdaptrisMessage msg) throws ServiceException {
   msg.addMetadata(
       getComparator().compare(msg.getMetadata(getFirstKey()), msg.getMetadata(getSecondKey())));
 }