geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sa...@apache.org
Subject svn commit: r1641681 - in /geronimo/specs/trunk/geronimo-javamail_1.4_spec: ./ src/main/java/javax/mail/internet/ src/main/java/org/apache/geronimo/mail/util/ src/test/java/javax/mail/util/ src/test/resources/
Date Tue, 25 Nov 2014 20:19:30 GMT
Author: salyh
Date: Tue Nov 25 20:19:29 2014
New Revision: 1641681

URL: http://svn.apache.org/r1641681
Log:
Fix GERONIMO-6165. This commit introduce the dependency on and the usage of (shaded and relocated)
apache mime4j core library. mime4j replaces util/QuotedPrintable* classes which will be deleted
by this commit.

Added:
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/util/QuotedPrintableEncoderTest.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg 
 (with props)
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail-result.txt
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg
  (with props)
Removed:
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/org/apache/geronimo/mail/util/QuotedPrintable.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/org/apache/geronimo/mail/util/QuotedPrintableDecoderStream.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/org/apache/geronimo/mail/util/QuotedPrintableEncoder.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/org/apache/geronimo/mail/util/QuotedPrintableEncoderStream.java
Modified:
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/pom.xml
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeUtility.java

Modified: geronimo/specs/trunk/geronimo-javamail_1.4_spec/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/pom.xml?rev=1641681&r1=1641680&r2=1641681&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/pom.xml (original)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/pom.xml Tue Nov 25 20:19:29 2014
@@ -38,16 +38,16 @@
 
     <description>Javamail 1.4 API Specification</description>
 
-    <url>http://geronimo.apache.org/maven/${siteId}/${version}</url>
+    <url>http://geronimo.apache.org/maven/${siteId}/${project.version}</url>
     <distributionManagement>
         <site>
             <id>apache-website</id>
-            <url>${site.deploy.url}/maven/${siteId}/${version}</url>
+            <url>${site.deploy.url}/maven/${siteId}/${project.version}</url>
         </site>
     </distributionManagement>
 
     <properties>
-        <siteId>specs/${artifactId}</siteId>
+        <siteId>specs/${project.artifactId}</siteId>
         <geronimo.osgi.private.pkg>org.apache.geronimo.mail*</geronimo.osgi.private.pkg>
         <geronimo.osgi.resources>src/main/resources/,META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt=NOTICE.txt</geronimo.osgi.resources>
     </properties>
@@ -89,6 +89,11 @@
             <version>3.8.2</version>
             <scope>test</scope>
         </dependency>
+         <dependency>
+             <groupId>org.apache.james</groupId>
+             <artifactId>apache-mime4j-core</artifactId>
+             <version>0.7.2</version>
+         </dependency>
     </dependencies>
 
     <build>
@@ -98,7 +103,7 @@
                 <artifactId>maven-bundle-plugin</artifactId>
                 <configuration>
                     <instructions>
-                        <Bundle-SymbolicName>${groupId}.${artifactId};singleton=true</Bundle-SymbolicName>
+                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton=true</Bundle-SymbolicName>
                         <Specification-Title>JSR-919 Javamail API 1.4</Specification-Title>
                         <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
                         <Specification-Version>1.4</Specification-Version>
@@ -109,45 +114,61 @@
                     </instructions>
                 </configuration>
             </plugin>
+            <plugin>
+                <!-- Override of default rat checks.  To use, type "mvn -Prat verify".
-->
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
+                    <excludeSubProjects>false</excludeSubProjects>
+                    <excludes>
+                        <exclude>**/target/**/*</exclude>
+                        <exclude>**/appended-resources/**/*</exclude>
+                        <exclude>**/velocity.log</exclude>
+                        <!-- manifest files don't support comments so don't contain the
ASL2.0 header -->
+                        <exclude>**/*.MF</exclude>
+                        <!-- This is a test file that needs to be in exactly the format
it is. -->
+                        <exclude>**/test/resources/**/*.msg</exclude>
+                        <exclude>**/test/resources/**/*.txt</exclude>
+                        <exclude>**/wmtom.bin</exclude>
+                        <!--RAT doesn't seem to recognize MIT style licenses-->
+                        <exclude>manual/src/styles/print.css</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <configuration>
+                    <artifactSet>
+                    <includes>
+                      <include>org.apache.james:apache-mime4j-core</include>
+                    </includes>
+                  </artifactSet>
+                  <relocations>
+                    <relocation>
+                      <pattern>org.apache.james.mime4j</pattern>
+                      <shadedPattern>org.apache.geronimo.mail.james.mime4j</shadedPattern>
+                    </relocation>
+                  </relocations>
+                </configuration>
+                <executions>
+                  <execution>
+                    <phase>package</phase>
+                    <goals>
+                      <goal>shade</goal>
+                    </goals>
+                  </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>rat</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <!-- Override of default rat checks.  To use, type "mvn -Prat
verify". -->
-                        <groupId>org.apache.rat</groupId>
-                        <artifactId>apache-rat-plugin</artifactId>
-                        <version>0.6</version>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
-                            <excludeSubProjects>false</excludeSubProjects>
-                            <excludes>
-                                <exclude>**/target/**/*</exclude>
-                                <exclude>**/appended-resources/**/*</exclude>
-                                <exclude>**/velocity.log</exclude>
-                                <!-- manifest files don't support comments so don't contain
the ASL2.0 header -->
-                                <exclude>**/*.MF</exclude>
-                                <!-- This is a test file that needs to be in exactly the
format it is. -->
-                                <exclude>**/wmtom.bin</exclude>
-                                <!--RAT doesn't seem to recognize MIT style licenses-->
-                                <exclude>manual/src/styles/print.css</exclude>
-                            </excludes>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
 </project>

Modified: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeUtility.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeUtility.java?rev=1641681&r1=1641680&r2=1641681&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeUtility.java
(original)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeUtility.java
Tue Nov 25 20:19:29 2014
@@ -19,15 +19,14 @@
 
 package javax.mail.internet;
 
-import java.io.BufferedInputStream;
 import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -42,13 +41,16 @@ import org.apache.geronimo.mail.util.Bas
 import org.apache.geronimo.mail.util.Base64DecoderStream;
 import org.apache.geronimo.mail.util.Base64Encoder;
 import org.apache.geronimo.mail.util.Base64EncoderStream;
-import org.apache.geronimo.mail.util.QuotedPrintableDecoderStream;
-import org.apache.geronimo.mail.util.QuotedPrintableEncoderStream;
-import org.apache.geronimo.mail.util.QuotedPrintableEncoder;
-import org.apache.geronimo.mail.util.QuotedPrintable;
 import org.apache.geronimo.mail.util.SessionUtil;
 import org.apache.geronimo.mail.util.UUDecoderStream;
 import org.apache.geronimo.mail.util.UUEncoderStream;
+import org.apache.james.mime4j.codec.DecodeMonitor;
+import org.apache.james.mime4j.codec.DecoderUtil;
+import org.apache.james.mime4j.codec.EncoderUtil;
+import org.apache.james.mime4j.codec.EncoderUtil.Encoding;
+import org.apache.james.mime4j.codec.EncoderUtil.Usage;
+import org.apache.james.mime4j.codec.QuotedPrintableInputStream;
+import org.apache.james.mime4j.codec.QuotedPrintableOutputStream;
 
 // encodings include "base64", "quoted-printable", "7bit", "8bit" and "binary".
 // In addition, "uuencode" is also supported. The
@@ -68,12 +70,12 @@ public class MimeUtility {
 
     public static final int ALL = -1;
 
-    private static String defaultJavaCharset;
+    //private static String defaultJavaCharset;
     private static String escapedChars = "\"\\\r\n";
     private static String linearWhiteSpace = " \t\r\n";
 
-    private static String QP_WORD_SPECIALS = "=_?\"#$%&'(),.:;<>@[\\]^`{|}~";
-    private static String QP_TEXT_SPECIALS = "=_?";
+    //private static String QP_WORD_SPECIALS = "=_?\"#$%&'(),.:;<>@[\\]^`{|}~";
+    //private static String QP_TEXT_SPECIALS = "=_?";
 
     // the javamail spec includes the ability to map java encoding names to MIME-specified
names.  Normally,
     // these values are loaded from a character mapping file.
@@ -100,7 +102,7 @@ public class MimeUtility {
             return new UUDecoderStream(in);
         }
         else if (encoding.equals("quoted-printable")) {
-            return new QuotedPrintableDecoderStream(in);
+            return new QuotedPrintableInputStream(in);
         }
         else {
             throw new MessagingException("Unknown encoding " + encoding);
@@ -436,8 +438,11 @@ public class MimeUtility {
             }
             // maybe quoted printable.
             else if (encoding.equals("Q")) {
-                QuotedPrintableEncoder dataEncoder = new QuotedPrintableEncoder();
-                dataEncoder.decodeWord(encodedData, out);
+                String retVal = DecoderUtil.decodeEncodedWords(word, DecodeMonitor.SILENT);
+                return retVal;
+                
+                //QuotedPrintableEncoder dataEncoder = new QuotedPrintableEncoder();
+                //dataEncoder.decodeWord(encodedData, out);
             }
             else {
                 throw new UnsupportedEncodingException("Unknown RFC 2047 encoding: " + encoding);
@@ -481,7 +486,7 @@ public class MimeUtility {
             return new UUEncoderStream(out);
         }
         else if (encoding.equals("quoted-printable")) {
-            return new QuotedPrintableEncoderStream(out);
+            return new QuotedPrintableOutputStream(out, false); //TODO binary false??
         }
         else {
             throw new MessagingException("Unknown encoding " + encoding);
@@ -514,7 +519,7 @@ public class MimeUtility {
             return new UUEncoderStream(out, filename);
         }
         else if (encoding.equals("quoted-printable")) {
-             return new QuotedPrintableEncoderStream(out);
+             return new QuotedPrintableOutputStream(out, false); //TODO binary false???
         }
         else {
             throw new MessagingException("Unknown encoding " + encoding);
@@ -583,9 +588,11 @@ public class MimeUtility {
                 encodeBase64(word, result, sizeLimit, charset, dataEncoder, true, SessionUtil.getBooleanProperty(MIME_FOLDENCODEDWORDS,
false)); 
             }
             else {
-                QuotedPrintableEncoder dataEncoder = new QuotedPrintableEncoder();
-                encodeQuotedPrintable(word, result, sizeLimit, charset, dataEncoder, true,

-                    SessionUtil.getBooleanProperty(MIME_FOLDENCODEDWORDS, false), encodingWord
? QP_WORD_SPECIALS : QP_TEXT_SPECIALS); 
+                //TODO MIME_FOLDENCODEDWORDS
+                return EncoderUtil.encodeEncodedWord(word, encodingWord ? Usage.WORD_ENTITY:Usage.TEXT_TOKEN,
0, Charset.forName(charset), Encoding.Q);
+                //QuotedPrintableEncoder dataEncoder = new QuotedPrintableEncoder();
+                //encodeQuotedPrintable(word, result, sizeLimit, charset, dataEncoder, true,

+                //    SessionUtil.getBooleanProperty(MIME_FOLDENCODEDWORDS, false), encodingWord
? QP_WORD_SPECIALS : QP_TEXT_SPECIALS); 
             }
             return result.toString();    
         } catch (IOException e) {
@@ -663,7 +670,7 @@ public class MimeUtility {
      * @param foldSegments
      *                  Indicates the type of delimiter to use (blank or newline sequence).
      */
-    static private void encodeQuotedPrintable(String data, StringBuffer out, int sizeLimit,
String charset, QuotedPrintableEncoder encoder, 
+    /*static private void encodeQuotedPrintable(String data, StringBuffer out, int sizeLimit,
String charset, QuotedPrintableEncoder encoder, 
         boolean firstSegment, boolean foldSegments, String specials)  throws IOException

     {
         // this needs to be converted into the appropriate transfer encoding. 
@@ -694,7 +701,7 @@ public class MimeUtility {
             // do the encoding of the segment.
             encoder.encodeWord(bytes, out, charset, specials);
         }
-    }
+    }*/
 
 
     /**
@@ -720,7 +727,7 @@ public class MimeUtility {
 
         try {
             // get a parser that allows us to make comparisons.
-            ContentType content = new ContentType(ds.getContentType());
+            ContentType content = new ContentType(handler.getContentType());
 
             // The only access to the content bytes at this point is by asking the handler
to write
             // the information out to a stream.  We're going to pipe this through a special
stream
@@ -801,7 +808,7 @@ public class MimeUtility {
      */
     public static String quote(String word, String specials) {
         int wordLength = word.length();
-        boolean requiresQuoting = false;
+        //boolean requiresQuoting = false;
         // scan the string looking for problem characters
         for (int i =0; i < wordLength; i++) {
             char ch = word.charAt(i);
@@ -1242,7 +1249,7 @@ public class MimeUtility {
             // we have an unescaped line break
             else if (ch == '\n' || ch == '\r') {
                 // remember the position in case we need to backtrack.
-                int lineBreak = i;
+                //int lineBreak = i;
                 boolean CRLF = false;
 
                 if (ch == '\r') {

Added: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/util/QuotedPrintableEncoderTest.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/util/QuotedPrintableEncoderTest.java?rev=1641681&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/util/QuotedPrintableEncoderTest.java
(added)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/util/QuotedPrintableEncoderTest.java
Tue Nov 25 20:19:29 2014
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package javax.mail.util;
+
+import java.io.InputStream;
+import java.util.Scanner;
+
+import javax.mail.Session;
+import javax.mail.internet.MimeMessage;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public class QuotedPrintableEncoderTest extends TestCase{
+
+    public void testGERONIMO6165() throws Exception{
+        MimeMessage msg = new MimeMessage((Session)null, QuotedPrintableEncoderTest.class.getResourceAsStream("/GERONIMO-6165.msg"));
+        Assert.assertEquals("quoted-printable", msg.getEncoding());
+        Assert.assertEquals("hello there!", msg.getContent().toString());
+    }
+    
+    public void testLongMail() throws Exception{
+        MimeMessage msg = new MimeMessage((Session)null, QuotedPrintableEncoderTest.class.getResourceAsStream("/quoted-printable-longmail.msg"));
+        InputStream result = QuotedPrintableEncoderTest.class.getResourceAsStream("/quoted-printable-longmail-result.txt");
+        Assert.assertEquals("quoted-printable", msg.getEncoding());
+        Assert.assertEquals(new Scanner(result,"UTF-8").useDelimiter("\\A").next(), msg.getContent());
+    }
+}

Added: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg?rev=1641681&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg (added)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg Tue
Nov 25 20:19:29 2014
@@ -0,0 +1,12 @@
+From: "Apache Org" <apache@apache.org>
+To: "Apache Org" <apache@apache.org>
+Subject: Test
+Date: Sun, 23 Nov 2014 13:11:29 -0200
+Message-ID: <UUUUUUUUUU.apache@apache.org>
+MIME-Version: 1.0
+Content-Type: text/plain;
+	charset=iso-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+hello th=
+ere!
\ No newline at end of file

Propchange: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/GERONIMO-6165.msg
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail-result.txt
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail-result.txt?rev=1641681&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail-result.txt
(added)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail-result.txt
Tue Nov 25 20:19:29 2014
@@ -0,0 +1,5 @@
+Er hörte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer würde ihm schon
folgen, spät in der Nacht und dazu noch in dieser engen Gasse mitten im übel beleumundeten
Hafenviertel? Gerade jetzt, wo er das Ding seines Lebens gedreht hatte und mit der Beute verschwinden
wollte! Hatte einer seiner zahllosen Kollegen dieselbe Idee gehabt, ihn beobachtet und abgewartet,
um ihn nun um die Früchte seiner Arbeit zu erleichtern? Oder gehörten die Schritte hinter
ihm zu einem der unzähligen Gesetzeshüter dieser Stadt, und die stählerne Acht um
seine Handgelenke würde gleich zuschnappen? Er konnte die Aufforderung stehen zu bleiben
schon hören. Gehetzt sah er sich um. Plötzlich erblickte er den schmalen Durchgang.
Blitzartig drehte er sich nach rechts und verschwand zwischen den beiden Gebäuden.
+
+Beinahe wäre er dabei über den umgestürzten Mülleimer gefallen, der mitten im
Weg lag. Er versuchte, sich in der Dunkelheit seinen Weg zu ertasten und erstarrte: Anscheinend
gab es keinen anderen Ausweg aus diesem kleinen Hof als den Durchgang, durch den er gekommen
war. Die Schritte wurden lauter und lauter, er sah eine dunkle Gestalt um die Ecke biegen.
Fieberhaft irrten seine Augen durch die nächtliche Dunkelheit und suchten einen Ausweg.
War jetzt wirklich alles vorbei, waren alle Mühe und alle Vorbereitungen umsonst? Er presste
sich ganz eng an die Wand hinter ihm und hoffte, der Verfolger würde ihn übersehen,
als plötzlich neben ihm mit kaum wahrnehmbarem Quietschen eine Tür im nächtlichen
Wind hin und her schwang. Könnte dieses der flehentlich herbeigesehnte Ausweg aus seinem
Dilemma sein?
+
+Langsam bewegte er sich auf die offene Tür zu, immer dicht an die Mauer gepresst. Würde
diese Tür seine Rettung werden? Er hörte leise Schritte hinter sich. Das bedeutete nichts
Gutes. Wer würde ihm schon folgen, spät in der Nacht und dazu noch in dieser engen Gasse
mitten im übel beleumundeten Hafenviertel? Gerade jetzt, wo er das Ding seines Lebens gedreht
hatte und mit der Beute verschwinden wollte! Hatte einer seiner zahllosen Kollegen dieselbe
Idee gehabt, ihn beobachtet und abgewartet, um ihn nun um die Früchte seiner Arbeit zu
erleichtern? Oder gehörten die Schritte hinter ihm zu einem der unzähligen Gesetzeshüter
dieser Stadt, und die stählerne Acht um seine Handgelenke würde gleich zuschnappen?
Er konnte die Aufforderung stehen zu bleiben schon hören. Gehetzt sah er sich um. Plötzlich
erblickte er den schmalen Durchgang. Blitzartig drehte er sich nach rechts und verschwand
zwischen den beiden Gebäuden. Beinahe wäre er dabei
  über den umgestürzten Mülleimer gefallen, der mitten im Weg lag. Er versuchte,
sich in der Dunkelheit seinen Weg zu ertasten und erstarrte: Anscheinend gab es keinen anderen
Ausweg aus diesem kleinen Hof als den Durchgang, durch den er gekommen war. Die Schritte wurden
lauter und lauter, er sah eine dunkle Gestalt um die Ecke biegen. Fieberhaft irrten seine
Augen durch die nächtliche Dunkelheit und suchten einen Ausweg. War jetzt wirklich alles
vorbei, waren alle Mühe und alle Vorbereitungen umsonst? Er presste sich ganz eng an die
Wand hinter ihm und hoffte, der Verfolger würde ihn übersehen, als plötzlich neben
ihm

Added: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg?rev=1641681&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg
(added)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg
Tue Nov 25 20:19:29 2014
@@ -0,0 +1,58 @@
+From: "Apache Org" <apache@apache.org>
+To: "Apache Org" <apache@apache.org>
+Subject: Test
+Date: Sun, 23 Nov 2014 13:11:29 -0200
+Message-ID: <UUUUUUUUUU.apache@apache.org>
+MIME-Version: 1.0
+Content-Type: text/plain;
+	charset=iso-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+Er h=F6rte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer w=FC=
+rde ihm schon folgen, sp=E4t in der Nacht und dazu noch in dieser engen Gas=
+se mitten im =FCbel beleumundeten Hafenviertel? Gerade jetzt, wo er das Din=
+g seines Lebens gedreht hatte und mit der Beute verschwinden wollte! Hatte =
+einer seiner zahllosen Kollegen dieselbe Idee gehabt, ihn beobachtet und ab=
+gewartet, um ihn nun um die Fr=FCchte seiner Arbeit zu erleichtern? Oder ge=
+h=F6rten die Schritte hinter ihm zu einem der unz=E4hligen Gesetzesh=FCter =
+dieser Stadt, und die st=E4hlerne Acht um seine Handgelenke w=FCrde gleich =
+zuschnappen? Er konnte die Aufforderung stehen zu bleiben schon h=F6ren. Ge=
+hetzt sah er sich um. Pl=F6tzlich erblickte er den schmalen Durchgang. Blit=
+zartig drehte er sich nach rechts und verschwand zwischen den beiden Geb=E4=
+uden.
+
+Beinahe w=E4re er dabei =FCber den umgest=FCrzten M=FClleimer gefallen, der=
+ mitten im Weg lag. Er versuchte, sich in der Dunkelheit seinen Weg zu erta=
+sten und erstarrte: Anscheinend gab es keinen anderen Ausweg aus diesem kle=
+inen Hof als den Durchgang, durch den er gekommen war. Die Schritte wurden =
+lauter und lauter, er sah eine dunkle Gestalt um die Ecke biegen. Fieberhaf=
+t irrten seine Augen durch die n=E4chtliche Dunkelheit und suchten einen Au=
+sweg. War jetzt wirklich alles vorbei, waren alle M=FChe und alle Vorbereit=
+ungen umsonst? Er presste sich ganz eng an die Wand hinter ihm und hoffte, =
+der Verfolger w=FCrde ihn =FCbersehen, als pl=F6tzlich neben ihm mit kaum w=
+ahrnehmbarem Quietschen eine T=FCr im n=E4chtlichen Wind hin und her schwan=
+g. K=F6nnte dieses der flehentlich herbeigesehnte Ausweg aus seinem Dilemma=
+ sein?
+
+Langsam bewegte er sich auf die offene T=FCr zu, immer dicht an die Mauer g=
+epresst. W=FCrde diese T=FCr seine Rettung werden? Er h=F6rte leise Schritt=
+e hinter sich. Das bedeutete nichts Gutes. Wer w=FCrde ihm schon folgen, sp=
+=E4t in der Nacht und dazu noch in dieser engen Gasse mitten im =FCbel bele=
+umundeten Hafenviertel? Gerade jetzt, wo er das Ding seines Lebens gedreht =
+hatte und mit der Beute verschwinden wollte! Hatte einer seiner zahllosen K=
+ollegen dieselbe Idee gehabt, ihn beobachtet und abgewartet, um ihn nun um =
+die Fr=FCchte seiner Arbeit zu erleichtern? Oder geh=F6rten die Schritte hi=
+nter ihm zu einem der unz=E4hligen Gesetzesh=FCter dieser Stadt, und die st=
+=E4hlerne Acht um seine Handgelenke w=FCrde gleich zuschnappen? Er konnte d=
+ie Aufforderung stehen zu bleiben schon h=F6ren. Gehetzt sah er sich um. Pl=
+=F6tzlich erblickte er den schmalen Durchgang. Blitzartig drehte er sich na=
+ch rechts und verschwand zwischen den beiden Geb=E4uden. Beinahe w=E4re er =
+dabei =FCber den umgest=FCrzten M=FClleimer gefallen, der mitten im Weg lag=
+. Er versuchte, sich in der Dunkelheit seinen Weg zu ertasten und erstarrte=
+: Anscheinend gab es keinen anderen Ausweg aus diesem kleinen Hof als den D=
+urchgang, durch den er gekommen war. Die Schritte wurden lauter und lauter,=
+ er sah eine dunkle Gestalt um die Ecke biegen. Fieberhaft irrten seine Aug=
+en durch die n=E4chtliche Dunkelheit und suchten einen Ausweg. War jetzt wi=
+rklich alles vorbei, waren alle M=FChe und alle Vorbereitungen umsonst? Er =
+presste sich ganz eng an die Wand hinter ihm und hoffte, der Verfolger w=FC=
+rde ihn =FCbersehen, als pl=F6tzlich neben ihm

Propchange: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/resources/quoted-printable-longmail.msg
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message