]> source.dussan.org Git - poi.git/commitdiff
Rename the outlook extractor to be more consistent with other extractors
authorNick Burch <nick@apache.org>
Fri, 8 Jan 2010 16:18:52 +0000 (16:18 +0000)
committerNick Burch <nick@apache.org>
Fri, 8 Jan 2010 16:18:52 +0000 (16:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@897249 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/extractor/ExtractorFactory.java
src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java
src/scratchpad/src/org/apache/poi/hsmf/extractor/HSMFTextExtactor.java [deleted file]
src/scratchpad/src/org/apache/poi/hsmf/extractor/OutlookTextExtactor.java [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestHSMFTextExtractor.java [deleted file]
src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestOutlookTextExtractor.java [new file with mode: 0644]

index b14c690e52f24a4a0b48819bad800297b9eb8781..15b37508159eb2658a14676ece156335a59d45a0 100644 (file)
@@ -34,7 +34,7 @@
 
     <changes>
         <release version="3.7-SNAPSHOT" date="2010-??-??">
-           <action dev="POI-DEVELOPERS" type="fix">Add a text extractor to HSMF for simpler extraction of text from .msg files</action>
+           <action dev="POI-DEVELOPERS" type="fix">Add a text extractor (OutlookTextExtractor) to HSMF for simpler extraction of text from .msg files</action>
            <action dev="POI-DEVELOPERS" type="fix">Some improvements to HSMF parsing of .msg files</action>
            <action dev="POI-DEVELOPERS" type="fix">Initialise the link type of HSSFHyperLink, so that getType() on it works</action>
            <action dev="POI-DEVELOPERS" type="fix">48425 - improved performance of DateUtil.isCellDateFormatted()  </action>
index 28af05b3e2bb635c82b43751d2b8533b39189151..7657635e750f857b0e7b5d6d8b990e571f5a440a 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.POIXMLDocument;
 import org.apache.poi.POIXMLTextExtractor;
 import org.apache.poi.hdgf.extractor.VisioTextExtractor;
 import org.apache.poi.hslf.extractor.PowerPointExtractor;
-import org.apache.poi.hsmf.extractor.HSMFTextExtactor;
+import org.apache.poi.hsmf.extractor.OutlookTextExtactor;
 import org.apache.poi.hssf.extractor.ExcelExtractor;
 import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -142,7 +142,7 @@ public class ExtractorFactory {
                        if(entry.getName().equals("__substg1.0_1000001E") ||
                              entry.getName().equals("__substg1.0_0047001E") ||
                              entry.getName().equals("__substg1.0_0037001E")) {
-                          return new HSMFTextExtactor(poifsDir, fs);
+                          return new OutlookTextExtactor(poifsDir, fs);
                        }
                }
                throw new IllegalArgumentException("No supported documents found in the OLE2 stream");
index 8518b6eab15f930dbef30e596acba21df927ae63..f9b88794bd49cc8cd46fadf6e2f94a2a1578b1fd 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.POITextExtractor;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hdgf.extractor.VisioTextExtractor;
 import org.apache.poi.hslf.extractor.PowerPointExtractor;
-import org.apache.poi.hsmf.extractor.HSMFTextExtactor;
+import org.apache.poi.hsmf.extractor.OutlookTextExtactor;
 import org.apache.poi.hssf.extractor.ExcelExtractor;
 import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -169,7 +169,7 @@ public class TestExtractorFactory extends TestCase {
       // Outlook msg
       assertTrue(
             ExtractorFactory.createExtractor(msg)
-            instanceof HSMFTextExtactor
+            instanceof OutlookTextExtactor
       );
       assertTrue(
             ExtractorFactory.createExtractor(msg).getText().length() > 50
@@ -248,7 +248,7 @@ public class TestExtractorFactory extends TestCase {
                // Outlook msg
       assertTrue(
             ExtractorFactory.createExtractor(new FileInputStream(msg))
-            instanceof HSMFTextExtactor
+            instanceof OutlookTextExtactor
       );
       assertTrue(
             ExtractorFactory.createExtractor(new FileInputStream(msg)).getText().length() > 50
@@ -303,7 +303,7 @@ public class TestExtractorFactory extends TestCase {
       // Outlook msg
       assertTrue(
             ExtractorFactory.createExtractor(new POIFSFileSystem(new FileInputStream(msg)))
-            instanceof HSMFTextExtactor
+            instanceof OutlookTextExtactor
       );
       assertTrue(
             ExtractorFactory.createExtractor(new POIFSFileSystem(new FileInputStream(msg))).getText().length() > 50
diff --git a/src/scratchpad/src/org/apache/poi/hsmf/extractor/HSMFTextExtactor.java b/src/scratchpad/src/org/apache/poi/hsmf/extractor/HSMFTextExtactor.java
deleted file mode 100644 (file)
index fd72fea..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ====================================================================
-   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 org.apache.poi.hsmf.extractor;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.SimpleDateFormat;
-
-import org.apache.poi.POIOLE2TextExtractor;
-import org.apache.poi.hsmf.MAPIMessage;
-import org.apache.poi.hsmf.exceptions.ChunkNotFoundException;
-import org.apache.poi.poifs.filesystem.DirectoryNode;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-
-public class HSMFTextExtactor extends POIOLE2TextExtractor {
-   public HSMFTextExtactor(MAPIMessage msg) {
-      super(msg);
-   }
-   public HSMFTextExtactor(DirectoryNode poifsDir, POIFSFileSystem fs) throws IOException {
-      this(new MAPIMessage(poifsDir, fs));
-   }
-   public HSMFTextExtactor(POIFSFileSystem fs) throws IOException {
-      this(new MAPIMessage(fs));
-   }
-   public HSMFTextExtactor(InputStream inp) throws IOException {
-      this(new MAPIMessage(inp));
-   }
-
-   /**
-    * Outputs something a little like a RFC822 email
-    */
-   public String getText() {
-      MAPIMessage msg = (MAPIMessage)document;
-      StringBuffer s = new StringBuffer();
-      
-      try {
-         s.append("From: " + msg.getDisplayFrom() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         s.append("To: " + msg.getDisplayTo() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         if(msg.getDisplayCC().length() > 0)
-            s.append("CC: " + msg.getDisplayCC() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         if(msg.getDisplayBCC().length() > 0)
-            s.append("BCC: " + msg.getDisplayBCC() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         SimpleDateFormat f = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss");
-         s.append("Date: " + f.format(msg.getMessageDate().getTime()) + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         s.append("Subject: " + msg.getSubject() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      try {
-         s.append("\n" + msg.getTextBody() + "\n");
-      } catch(ChunkNotFoundException e) {}
-      
-      return s.toString();
-   }
-
-}
diff --git a/src/scratchpad/src/org/apache/poi/hsmf/extractor/OutlookTextExtactor.java b/src/scratchpad/src/org/apache/poi/hsmf/extractor/OutlookTextExtactor.java
new file mode 100644 (file)
index 0000000..54a2ddd
--- /dev/null
@@ -0,0 +1,81 @@
+/* ====================================================================
+   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 org.apache.poi.hsmf.extractor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+
+import org.apache.poi.POIOLE2TextExtractor;
+import org.apache.poi.hsmf.MAPIMessage;
+import org.apache.poi.hsmf.exceptions.ChunkNotFoundException;
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+
+/**
+ * A text extractor for HSMF (Outlook) .msg files.
+ * Outputs in a format somewhat like a plain text email.
+ */
+public class OutlookTextExtactor extends POIOLE2TextExtractor {
+   public OutlookTextExtactor(MAPIMessage msg) {
+      super(msg);
+   }
+   public OutlookTextExtactor(DirectoryNode poifsDir, POIFSFileSystem fs) throws IOException {
+      this(new MAPIMessage(poifsDir, fs));
+   }
+   public OutlookTextExtactor(POIFSFileSystem fs) throws IOException {
+      this(new MAPIMessage(fs));
+   }
+   public OutlookTextExtactor(InputStream inp) throws IOException {
+      this(new MAPIMessage(inp));
+   }
+
+   /**
+    * Outputs something a little like a RFC822 email
+    */
+   public String getText() {
+      MAPIMessage msg = (MAPIMessage)document;
+      StringBuffer s = new StringBuffer();
+      
+      try {
+         s.append("From: " + msg.getDisplayFrom() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         s.append("To: " + msg.getDisplayTo() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         if(msg.getDisplayCC().length() > 0)
+            s.append("CC: " + msg.getDisplayCC() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         if(msg.getDisplayBCC().length() > 0)
+            s.append("BCC: " + msg.getDisplayBCC() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         SimpleDateFormat f = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss");
+         s.append("Date: " + f.format(msg.getMessageDate().getTime()) + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         s.append("Subject: " + msg.getSubject() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      try {
+         s.append("\n" + msg.getTextBody() + "\n");
+      } catch(ChunkNotFoundException e) {}
+      
+      return s.toString();
+   }
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestHSMFTextExtractor.java b/src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestHSMFTextExtractor.java
deleted file mode 100644 (file)
index 84ebbb1..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ====================================================================
-   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 org.apache.poi.hsmf.extractor;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.apache.poi.POIDataSamples;
-import org.apache.poi.hsmf.MAPIMessage;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-
-/**
- * Tests to verify that the text extractor works
- */
-public final class TestHSMFTextExtractor extends TestCase {
-   private POIDataSamples samples;
-
-       public TestHSMFTextExtractor() throws IOException {
-        samples = POIDataSamples.getHSMFInstance();
-       }
-       
-       private void assertContains(String haystack, String needle) {
-          if(haystack.indexOf(needle) > -1) {
-             return;
-          }
-          fail("'" + needle + "' wasn't found in '" + haystack + "'");
-       }
-       
-   public void testQuick() throws Exception {
-      POIFSFileSystem simple = new POIFSFileSystem(
-            new FileInputStream(samples.getFile("quick.msg"))
-      );
-      MAPIMessage msg = new MAPIMessage(simple);
-      
-      HSMFTextExtactor ext = new HSMFTextExtactor(msg);
-      String text = ext.getText();
-      
-      assertContains(text, "From: Kevin Roast\n");
-      assertContains(text, "To: Kevin Roast\n");
-      assertEquals(-1, text.indexOf("CC:"));
-      assertEquals(-1, text.indexOf("BCC:"));
-      assertContains(text, "Subject: Test the content transformer\n");
-      assertContains(text, "Date: Thu, 14 Jun 2007 09:42:55\n");
-      assertContains(text, "The quick brown fox jumps over the lazy dog");
-   }
-   
-   public void testSimple() throws Exception {
-      MAPIMessage msg = new MAPIMessage(new POIFSFileSystem(
-            new FileInputStream(samples.getFile("simple_test_msg.msg"))
-      ));
-      
-      HSMFTextExtactor ext = new HSMFTextExtactor(msg);
-      String text = ext.getText();
-      
-      assertContains(text, "From: Travis Ferguson\n");
-      assertContains(text, "To: travis@overwrittenstack.com\n");
-      assertEquals(-1, text.indexOf("CC:"));
-      assertEquals(-1, text.indexOf("BCC:"));
-      assertContains(text, "Subject: test message\n");
-      assertEquals(-1, text.indexOf("Date:"));
-      assertContains(text, "This is a test message.");
-   }
-
-   public void testConstructors() throws Exception {
-      String inp = (new HSMFTextExtactor(new FileInputStream(
-            samples.getFile("simple_test_msg.msg")
-      )).getText());
-      String poifs = (new HSMFTextExtactor(new POIFSFileSystem(new FileInputStream(
-            samples.getFile("simple_test_msg.msg")
-      ))).getText());
-      String mapi = (new HSMFTextExtactor(new MAPIMessage(new FileInputStream(
-            samples.getFile("simple_test_msg.msg")
-      ))).getText());
-      
-      assertEquals(inp, poifs);
-      assertEquals(inp, mapi);
-   }
-}
diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestOutlookTextExtractor.java b/src/scratchpad/testcases/org/apache/poi/hsmf/extractor/TestOutlookTextExtractor.java
new file mode 100644 (file)
index 0000000..b15bbc7
--- /dev/null
@@ -0,0 +1,95 @@
+/* ====================================================================
+   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 org.apache.poi.hsmf.extractor;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hsmf.MAPIMessage;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+
+/**
+ * Tests to verify that the text extractor works
+ */
+public final class TestOutlookTextExtractor extends TestCase {
+   private POIDataSamples samples;
+
+       public TestOutlookTextExtractor() throws IOException {
+        samples = POIDataSamples.getHSMFInstance();
+       }
+       
+       private void assertContains(String haystack, String needle) {
+          if(haystack.indexOf(needle) > -1) {
+             return;
+          }
+          fail("'" + needle + "' wasn't found in '" + haystack + "'");
+       }
+       
+   public void testQuick() throws Exception {
+      POIFSFileSystem simple = new POIFSFileSystem(
+            new FileInputStream(samples.getFile("quick.msg"))
+      );
+      MAPIMessage msg = new MAPIMessage(simple);
+      
+      OutlookTextExtactor ext = new OutlookTextExtactor(msg);
+      String text = ext.getText();
+      
+      assertContains(text, "From: Kevin Roast\n");
+      assertContains(text, "To: Kevin Roast\n");
+      assertEquals(-1, text.indexOf("CC:"));
+      assertEquals(-1, text.indexOf("BCC:"));
+      assertContains(text, "Subject: Test the content transformer\n");
+      assertContains(text, "Date: Thu, 14 Jun 2007 09:42:55\n");
+      assertContains(text, "The quick brown fox jumps over the lazy dog");
+   }
+   
+   public void testSimple() throws Exception {
+      MAPIMessage msg = new MAPIMessage(new POIFSFileSystem(
+            new FileInputStream(samples.getFile("simple_test_msg.msg"))
+      ));
+      
+      OutlookTextExtactor ext = new OutlookTextExtactor(msg);
+      String text = ext.getText();
+      
+      assertContains(text, "From: Travis Ferguson\n");
+      assertContains(text, "To: travis@overwrittenstack.com\n");
+      assertEquals(-1, text.indexOf("CC:"));
+      assertEquals(-1, text.indexOf("BCC:"));
+      assertContains(text, "Subject: test message\n");
+      assertEquals(-1, text.indexOf("Date:"));
+      assertContains(text, "This is a test message.");
+   }
+
+   public void testConstructors() throws Exception {
+      String inp = (new OutlookTextExtactor(new FileInputStream(
+            samples.getFile("simple_test_msg.msg")
+      )).getText());
+      String poifs = (new OutlookTextExtactor(new POIFSFileSystem(new FileInputStream(
+            samples.getFile("simple_test_msg.msg")
+      ))).getText());
+      String mapi = (new OutlookTextExtactor(new MAPIMessage(new FileInputStream(
+            samples.getFile("simple_test_msg.msg")
+      ))).getText());
+      
+      assertEquals(inp, poifs);
+      assertEquals(inp, mapi);
+   }
+}