Examples of MimeStreamParser


Examples of org.apache.james.mime4j.parser.MimeStreamParser

     * @throws IOException on I/O errors.
     * @throws MimeIOException on MIME protocol violations.
     */
    public Header(InputStream is)
            throws IOException, MimeIOException {
        final MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void endHeader() {
                parser.stop();
            }
            @Override
            public void field(Field field) throws MimeException {
                addField(field);
            }
        });
        try {
            parser.parse(is);
        } catch (MimeException ex) {
            throw new MimeIOException(ex);
        }
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

     */
    public Message(InputStream is, MimeEntityConfig config,
            StorageProvider storageProvider) throws IOException,
            MimeIOException {
        try {
            MimeStreamParser parser = new MimeStreamParser(config);
            parser.setContentHandler(new MessageBuilder(this, storageProvider));
            parser.parse(is);
        } catch (MimeException e) {
            throw new MimeIOException(e);
        }
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

    public static List<MessageResult.Header> createHeaders(final Message<?> document) throws IOException {
        final List<MessageResult.Header> results = new ArrayList<MessageResult.Header>();
        MimeConfig config = new MimeConfig();
        config.setMaxLineLen(-1);
        config.setMaxHeaderLen(-1);
        final MimeStreamParser parser = new MimeStreamParser(config);
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void endHeader() {
                parser.stop();
            }
            @Override
            public void field(Field field) throws MimeException {
                String fieldValue;
                if (field instanceof RawField) {
                    // check if we can access the body in the raw form so no unfolding was done under the hood
                    ByteSequence raw = field.getRaw();
                    int len = raw.length();
                    int off = ((RawField) field).getDelimiterIdx() + 1;
                    if (len > off + 1 && (raw.byteAt(off) & 0xff) == 0x20) off++;
               
                    fieldValue = ContentUtil.decode(raw, off, len - off);
                } else {
                    fieldValue = field.getBody();
                }
                if (fieldValue.endsWith("\r\f")) {
                    fieldValue = fieldValue.substring(0,fieldValue.length() - 2);
                }
                if (fieldValue.startsWith(" ")) {
                    fieldValue = fieldValue.substring(1);
                }
               
                final ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
                results.add(resultHeader);
            }
        });
        try {
            parser.parse(document.getHeaderContent());
        } catch (MimeException e) {
            throw new IOException("Unable to parse headers of message " + document, e);
        }
        return results;
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

       
        ByteArrayInputStream bais = new ByteArrayInputStream(sb.toString().getBytes("US-ASCII"));
       
        final StringBuilder actual = new StringBuilder();
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void epilogue(InputStream is) throws IOException {
                int b;
                while ((b = is.read()) != -1) {
                    actual.append((char) b);
                }
            }
        });
        parser.parse(bais);
       
        assertEquals(epilogue.toString(), actual.toString());
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

        expected.add("From: foo@abr.com");
        sb.append(expected.getLast() + "\r\n");
        expected.add("Subject: A subject");
        sb.append(expected.getLast() + "\r\n");
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void field(Field field) {
                assertEquals(expected.removeFirst(), decode(field.getRaw()));
            }
        });
       
        parser.parse(new ByteArrayInputStream(sb.toString().getBytes()));
       
        assertEquals(0, expected.size());
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

        final LinkedList<String> expected = new LinkedList<String>();
        expected.add("The-field: This field\r\rcontains CR:s\r\r"
                        + "not\r\n\tfollowed by LF");
        sb.append(expected.getLast() + "\r\n");
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void field(Field field) {
                assertEquals(expected.removeFirst(), decode(field.getRaw()));
            }
        });
       
        parser.parse(new ByteArrayInputStream(sb.toString().getBytes()));
       
        assertEquals(0, expected.size());
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

                        + " Wed, 19 Jun 96 18:12 MES");
        sb.append(expected.getLast() + "\r\n");
        expected.add("Subject: A folded subject\r\n Line 2\r\n\tLine 3");
        sb.append(expected.getLast() + "\r\n");
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void field(Field field) {
                assertEquals(expected.removeFirst(), decode(field.getRaw()));
            }
        });
       
        parser.parse(new ByteArrayInputStream(sb.toString().getBytes()));
       
        assertEquals(0, expected.size());
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

       
        assertEquals(0, expected.size());
    }
   
    public void testStop() throws Exception {
        final MimeStreamParser parser = new MimeStreamParser();
        TestHandler handler = new TestHandler() {
            @Override
            public void endHeader() {
                super.endHeader();
                parser.stop();
            }
        };
        parser.setContentHandler(handler);

        String msg = "Subject: Yada yada\r\n"
                   + "From: foo@bar.com\r\n"
                   + "\r\n"
                   + "Line 1\r\n"
                   + "Line 2\r\n";
        String expected = "<message>\r\n"
                        + "<header>\r\n"
                        + "<field>\r\n"
                        + "Subject: Yada yada"
                        + "</field>\r\n"
                        + "<field>\r\n"
                        + "From: foo@bar.com"
                        + "</field>\r\n"
                        + "</header>\r\n"
                        + "<body>\r\n"
                        + "</body>\r\n"
                        + "</message>\r\n";
       
        parser.parse(new ByteArrayInputStream(msg.getBytes()));
        String result = handler.sb.toString();
       
        assertEquals(expected, result);
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

        sb.append(expected.getLast() + "\r\n");
        expected.add("Subject: A subject");
        sb.append(expected.getLast() + "\r\n");
        sb.append("A line which should be ignored\r\n");
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void field(Field field) {
                assertEquals(expected.removeFirst(), decode(field.getRaw()));
            }
        });
       
        parser.parse(new ByteArrayInputStream(sb.toString().getBytes()));
       
        assertEquals(0, expected.size());
    }
View Full Code Here

Examples of org.apache.james.mime4j.parser.MimeStreamParser

        expected.add("startHeader");
        expected.add("endHeader");
        expected.add("body");
        expected.add("endMessage");
       
        MimeStreamParser parser = new MimeStreamParser();
        parser.setContentHandler(new AbstractContentHandler() {
            @Override
            public void body(BodyDescriptor bd, InputStream is) {
                assertEquals(expected.removeFirst(), "body");
            }
           
            @Override
            public void endMultipart() {
                fail("endMultipart shouldn't be called for empty stream");
            }

            @Override
            public void endBodyPart() {
                fail("endBodyPart shouldn't be called for empty stream");
            }

            @Override
            public void endHeader() {
                assertEquals(expected.removeFirst(), "endHeader");
            }

            @Override
            public void endMessage() {
                assertEquals(expected.removeFirst(), "endMessage");
            }

            @Override
            public void field(Field field) {
                fail("field shouldn't be called for empty stream");
            }

            @Override
            public void startMultipart(BodyDescriptor bd) {
                fail("startMultipart shouldn't be called for empty stream");
            }

            @Override
            public void startBodyPart() {
                fail("startBodyPart shouldn't be called for empty stream");
            }

            @Override
            public void startHeader() {
                assertEquals(expected.removeFirst(), "startHeader");
            }

            @Override
            public void startMessage() {
                assertEquals(expected.removeFirst(), "startMessage");
            }
        });
       
        parser.parse(new ByteArrayInputStream(new byte[0]));
       
        assertEquals(0, expected.size());
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.