Package com.cloudera.cdk.morphline.api

Examples of com.cloudera.cdk.morphline.api.Record


  }

  @Ignore
  @Test
  public void testNullType() throws Exception {   
    Record event = createEvent(null);
    assertEquals("application/octet-stream", detect(event, false));
  }
View Full Code Here


    assertEquals("application/octet-stream", detect(event, false));
  }

  @Test
  public void testXML() throws Exception {   
    Record event = createEvent("<?xml version=\"1.0\"?><foo/>".getBytes("UTF-8"));
    assertEquals("application/xml", detect(event, false));
  }
View Full Code Here

    Record event = createEvent("<?xml version=\"1.0\"?><foo/>".getBytes("UTF-8"));
    assertEquals("application/xml", detect(event, false));
  }

  public void testXML11() throws Exception {   
    Record event = createEvent("<?xml version=\"1.1\"?><foo/>".getBytes("UTF-8"));
    assertEquals("application/xml", detect(event, false));
  }
View Full Code Here

    Record event = createEvent("<?xml version=\"1.1\"?><foo/>".getBytes("UTF-8"));
    assertEquals("application/xml", detect(event, false));
  }

  public void testXMLAnyVersion() throws Exception {   
    Record event = createEvent("<?xml version=\"\"?><foo/>".getBytes("UTF-8"));
    assertEquals("application/xml", detect(event, false));
  }
View Full Code Here

    assertEquals("application/xml", detect(event, false));
  }

  @Test
  public void testXMLasTextPlain() throws Exception {   
    Record event = createEvent("<foo/>".getBytes("UTF-8"));
    assertEquals("text/plain", detect(event, false));
  }
View Full Code Here

    };
   
    for (int i = 0; i < files.length; i += 3) {
      byte[] body = Files.toByteArray(new File(files[i+0]));
      ListMultimap<String, Object> emptyMap = ArrayListMultimap.create();
      Record event = createEvent(new ByteArrayInputStream(body), emptyMap);
      assertEquals(files[i+1], detect(event, false));
    }
   
    for (int i = 0; i < files.length; i += 3) {
      byte[] body = Files.toByteArray(new File(files[i+0]));
      ListMultimap headers = ImmutableListMultimap.of(Fields.ATTACHMENT_NAME, new File(files[i+0]).getName());
      Record event = createEvent(new ByteArrayInputStream(body), headers);
      assertEquals(files[i+2], detect(event, true));
    }
   
    for (int i = 0; i < files.length; i += 3) {
      byte[] body = Files.toByteArray(new File(files[i+0]));
      ListMultimap headers = ImmutableListMultimap.of(Fields.ATTACHMENT_NAME, new File(files[i+0]).getPath());
      Record event = createEvent(new ByteArrayInputStream(body), headers);
      assertEquals(files[i+2], detect(event, true));
    }

    // test excludeParameters flag:
    boolean excludeParameters = true;
    byte[] body = Files.toByteArray(new File(path + "/testWindows-x86-32.exe"));
    ListMultimap headers = ImmutableListMultimap.of(Fields.ATTACHMENT_NAME, new File(path + "/testWindows-x86-32.exe").getPath());
    Record event = createEvent(new ByteArrayInputStream(body), headers);
    assertEquals("application/x-msdownload", detect(event, true, excludeParameters));
  }
View Full Code Here

    ListMultimap<String, Object> emptyMap = ArrayListMultimap.create();
    return createEvent(new ByteArrayInputStream(bytes), emptyMap);
  }
 
  private Record createEvent(InputStream in, ListMultimap<String, Object> headers) {
    Record record = new Record();
    record.getFields().putAll(headers);
    record.replaceValues(Fields.ATTACHMENT_BODY, in);
    return record;
  }
View Full Code Here

 
    @Override
    protected boolean doProcess2(Record inputRecord, InputStream stream) throws SaxonApiException, XMLStreamException {
      incrementNumRecords();     
      for (Fragment fragment : fragments) {
        Record template = inputRecord.copy();
        removeAttachments(template);
        XdmNode document = parseXmlDocument(stream);
        LOG.trace("XQuery input document: {}", document);
        XQueryEvaluator evaluator = fragment.xQueryEvaluator;
        evaluator.setContextItem(document);
       
        int i = 0;
        for (XdmItem item : evaluator) {
          i++;
          if (LOG.isTraceEnabled()) {
            LOG.trace("XQuery result sequence item #{} is of class: {} with value: {}", new Object[] { i,
                item.getUnderlyingValue().getClass().getName(), item });
          }
          if (item.isAtomicValue()) {
            LOG.debug("Ignoring atomic value in result sequence: {}", item);
            continue;
          }
          XdmNode node = (XdmNode) item;
          Record outputRecord = template.copy();
          boolean isNonEmpty = addRecordValues(node, Axis.SELF, XdmNodeKind.ATTRIBUTE, outputRecord);
          isNonEmpty = addRecordValues(node, Axis.ATTRIBUTE, XdmNodeKind.ATTRIBUTE, outputRecord) || isNonEmpty;
          isNonEmpty = addRecordValues(node, Axis.CHILD, XdmNodeKind.ELEMENT, outputRecord) || isNonEmpty;
          if (isNonEmpty) { // pass record to next command in chain  
            if (!getChild().process(outputRecord)) {
View Full Code Here

      Charset detectedCharset = detectCharset(inputRecord, charset);
      InputSource source = new InputSource(new BufferedReader(new InputStreamReader(stream, detectedCharset)));
     
      xmlReader.parse(source); // push the HTML through tagsoup into the output byte array
     
      Record outputRecord = inputRecord.copy();
      removeAttachments(outputRecord);
      outputRecord.replaceValues(Fields.ATTACHMENT_BODY, out.toByteArray());     
      incrementNumRecords();
       
      // pass record to next command in chain:
      if (!getChild().process(outputRecord)) {
        return false;
View Full Code Here

  @Test
  public void testReadJson() throws Exception {
    morphline = createMorphline("test-morphlines/readJson");   
    for (int j = 0; j < 3; j++) { // also test reuse of objects and low level avro buffers
      InputStream in = new FileInputStream(new File(RESOURCES_DIR + "/test-documents/stream.json"));
      Record record = new Record();
      record.put(Fields.ATTACHMENT_BODY, in);
     
      collector.reset();
      startSession();
      assertEquals(1, collector.getNumStartEvents());
      assertTrue(morphline.process(record));   
View Full Code Here

TOP

Related Classes of com.cloudera.cdk.morphline.api.Record

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.