public void testOptimizedUnmarshal() throws Exception {
    if (null != XML_INPUT_FACTORY) {
      InputStream instream = ClassLoader.getSystemResourceAsStream(XML_RESOURCE);
      XMLStreamReader xmlStreamReader = XML_INPUT_FACTORY.createXMLStreamReader(instream);

      XMLReader xmlReader = new LargeInlineBinaryDataXMLStreamReaderReader();
      InputSource inputSource = new XMLStreamReaderInputSource(xmlStreamReader);
      SAXSource saxSource = new SAXSource(xmlReader, inputSource);

      JAXBContext jc =
          JAXBContextFactory.createContext(new Class[] {LargeInlineBinaryRoot.class}, null);
      Unmarshaller unmarshaller = jc.createUnmarshaller();
      LargeInlineBinaryRoot root = (LargeInlineBinaryRoot) unmarshaller.unmarshal(saxSource);

      assertSame(LargeInlineBinaryDataXMLStreamReaderReader.DATA_HANDLER, root.getDataHandler());
      assertSame(LargeInlineBinaryDataXMLStreamReaderReader.IMAGE, root.getImage());
      assertSame(LargeInlineBinaryDataXMLStreamReaderReader.SOURCE, root.getSource());
      assertSame(
          LargeInlineBinaryDataXMLStreamReaderReader.MIME_MULTIPART, root.getMimeMultipart());
      assertSame(
          LargeInlineBinaryDataXMLStreamReaderReader.DATA_HANDLER,
          root.getDataHandlerList().get(0));
      assertSame(LargeInlineBinaryDataXMLStreamReaderReader.IMAGE, root.getImageList().get(0));
      assertSame(LargeInlineBinaryDataXMLStreamReaderReader.SOURCE, root.getSourceList().get(0));
      assertSame(
          LargeInlineBinaryDataXMLStreamReaderReader.MIME_MULTIPART,
          root.getMimeMultipartList().get(0));
    }
  }
 public void testXMLToObjectFromXMLEventReader() throws Exception {
   if (null != XML_INPUT_FACTORY) {
     InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
     XMLEventReader xmlEventReader = XML_INPUT_FACTORY.createXMLEventReader(instream);
     Object testObject = jaxbUnmarshaller.unmarshal(xmlEventReader, Object.class);
     instream.close();
     xmlToObjectTest(testObject);
   }
 }
 private XMLStreamReader createXMLStreamReader(InputStream stream) {
   try {
     if (null == XML_INPUT_FACTORY) {
       return null;
     }
     XMLStreamReader xmlStreamReader = XML_INPUT_FACTORY.createXMLStreamReader(stream);
     return xmlStreamReader;
   } catch (XMLStreamException e) {
     return null;
   }
 }
예제 #4
0
 public void testXMLToObjectFromXMLEventReader() throws Exception {
   if (null != XML_INPUT_FACTORY && isUnmarshalTest()) {
     InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
     XMLEventReader xmlEventReader = XML_INPUT_FACTORY.createXMLEventReader(instream);
     jaxbUnmarshaller.setProperty(UnmarshallerProperties.MEDIA_TYPE, getXMLUnmarshalMediaType());
     Object testObject = null;
     if (getUnmarshalClass() != null) {
       testObject = jaxbUnmarshaller.unmarshal(xmlEventReader, getUnmarshalClass());
     } else {
       testObject = jaxbUnmarshaller.unmarshal(xmlEventReader);
     }
     instream.close();
     xmlToObjectTest(testObject);
   }
 }
  public void testXMLToObjectFromXMLStreamReaderEx() throws Exception {
    if (null != XML_INPUT_FACTORY) {
      InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
      XMLStreamReader xmlStreamReader = XML_INPUT_FACTORY.createXMLStreamReader(instream);

      ExtendedXMLStreamReaderReader xmlStreamReaderReaderEx = new ExtendedXMLStreamReaderReader();
      XMLStreamReaderInputSource xmlStreamReaderInputSource =
          new XMLStreamReaderInputSource(xmlStreamReader);
      SAXSource saxSource = new SAXSource(xmlStreamReaderReaderEx, xmlStreamReaderInputSource);

      Object testObject = jaxbUnmarshaller.unmarshal(saxSource, Object.class);
      instream.close();
      xmlToObjectTest(testObject);
    }
  }
    public void run() {
      try {
        ArrayList<Byte> bytes = new ArrayList<>();
        for (; ; ) {
          for (; ; ) {
            int readByte = inputStream.read();
            if (readByte == -1) {
              if (logger.isInfoEnabled()) logger.info("Read -1!!");
              return;
            }
            byte current = (byte) readByte;
            if (current == 0) {
              break;
            }
            bytes.add(current);
          }

          if (bytes.size() > 0) {
            byte[] ba = new byte[bytes.size()];
            for (int i = 0; i < bytes.size(); i++) {
              ba[i] = bytes.get(i);
            }
            bytes.clear();
            String str = new String(ba, StandardCharsets.UTF_8);
            if (logger.isDebugEnabled()) logger.debug("Read: {}", str);
            StringReader strr = new StringReader(str);
            XMLStreamReader reader = XML_INPUT_FACTORY.createXMLStreamReader(strr);
            LoggingEvent event = loggingEventReader.read(reader);
            addEvent(event);
          } else {
            if (logger.isDebugEnabled()) logger.debug("bytes.size()==0!!");
          }
        }
      } catch (Throwable e) {
        if (logger.isDebugEnabled())
          logger.debug(
              "Exception ({}: '{}') while reading events. Adding eventWrapper with empty event and stopping...",
              e.getClass().getName(),
              e.getMessage(),
              e);
        addEvent(null);
        IOUtilities.interruptIfNecessary(e);
      } finally {
        close();
      }
    }
예제 #7
0
  public void testXMLToObjectFromXMLStreamReaderEx() throws Exception {
    if (null != XML_INPUT_FACTORY && isUnmarshalTest()) {
      InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
      XMLStreamReader xmlStreamReader = XML_INPUT_FACTORY.createXMLStreamReader(instream);

      ExtendedXMLStreamReaderReader xmlStreamReaderReaderEx = new ExtendedXMLStreamReaderReader();
      xmlStreamReaderReaderEx.setErrorHandler(
          ((JAXBUnmarshaller) jaxbUnmarshaller).getXMLUnmarshaller().getErrorHandler());
      XMLStreamReaderInputSource xmlStreamReaderInputSource =
          new XMLStreamReaderInputSource(xmlStreamReader);
      SAXSource saxSource = new SAXSource(xmlStreamReaderReaderEx, xmlStreamReaderInputSource);
      jaxbUnmarshaller.setProperty(UnmarshallerProperties.MEDIA_TYPE, getXMLUnmarshalMediaType());
      Object testObject = null;
      if (getUnmarshalClass() != null) {
        testObject = jaxbUnmarshaller.unmarshal(saxSource, getUnmarshalClass());
      } else {
        testObject = jaxbUnmarshaller.unmarshal(saxSource);
      }

      instream.close();
      xmlToObjectTest(testObject);
    }
  }