You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2012/05/17 22:05:23 UTC

svn commit: r1339833 [1/2] - in /tika/trunk/tika-parsers/src: main/java/org/apache/tika/parser/asm/ main/java/org/apache/tika/parser/feed/ main/java/org/apache/tika/parser/font/ main/java/org/apache/tika/parser/html/ main/java/org/apache/tika/parser/im...

Author: nick
Date: Thu May 17 20:05:20 2012
New Revision: 1339833

URL: http://svn.apache.org/viewvc?rev=1339833&view=rev
Log:
TIKA-928 Epic patch from Ray Gauss - Update parsers and unit tests to use the new style TikaCoreProperties for setting (which supports aliasing for backwards compatibility), rather than old string based ones

Modified:
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/feed/FeedParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/MetadataFields.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/PSDParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/xmp/JempboxExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/prt/PRTParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/TextExtractor.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/TestParsers.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/font/AdobeFontMetricParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/MetadataFieldsTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/TiffParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/xmp/JempboxExtractorTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ProjectParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PublisherParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/VisioParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/WordParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/prt/PRTParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/rtf/RTFParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/txt/TXTParserTest.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/xml/DcXMLParserTest.java

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java Thu May 17 20:05:20 2012
@@ -21,6 +21,7 @@ import java.io.InputStream;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
@@ -78,7 +79,7 @@ class XHTMLClassVisitor implements Class
             className = className.substring(dot + 1);
         }
 
-        metadata.set(Metadata.TITLE, className);
+        metadata.set(TikaCoreProperties.TITLE, className);
         metadata.set(Metadata.RESOURCE_NAME_KEY, className + ".class");
 
         try {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/feed/FeedParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/feed/FeedParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/feed/FeedParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/feed/FeedParser.java Thu May 17 20:05:20 2012
@@ -26,6 +26,7 @@ import java.util.Set;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -72,8 +73,8 @@ public class FeedParser extends Abstract
             String title = stripTags(feed.getTitleEx());
             String description = stripTags(feed.getDescriptionEx());
 
-            metadata.set(Metadata.TITLE, title);
-            metadata.set(Metadata.DESCRIPTION, description);
+            metadata.set(TikaCoreProperties.TITLE, title);
+            metadata.set(TikaCoreProperties.DESCRIPTION, description);
             // store the other fields in the metadata
 
             XHTMLContentHandler xhtml =

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java Thu May 17 20:05:20 2012
@@ -27,6 +27,7 @@ import org.apache.fontbox.afm.FontMetric
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -67,7 +68,7 @@ public class AdobeFontMetricParser exten
        extractCreationDate( metadata, comments );
 
        metadata.set( Metadata.CONTENT_TYPE, AFM_TYPE.toString() );
-       metadata.set( Metadata.TITLE, fontMetrics.getFullName() );
+       metadata.set( TikaCoreProperties.TITLE, fontMetrics.getFullName() );
 
        // Add metadata associated with the font type
        addMetadataByString( metadata, "AvgCharacterWidth", Float.toString( fontMetrics.getAverageCharacterWidth() ) );

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java Thu May 17 20:05:20 2012
@@ -25,9 +25,8 @@ import org.apache.fontbox.ttf.TTFParser;
 import org.apache.fontbox.ttf.TrueTypeFont;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.TikaInputStream;
-import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -67,9 +66,9 @@ public class TrueTypeParser extends Abst
         }
 
         metadata.set(Metadata.CONTENT_TYPE, TYPE.toString());
-        metadata.set(Metadata.DATE, font.getHeader().getCreated().getTime());
+        metadata.set(TikaCoreProperties.DATE, font.getHeader().getCreated().getTime());
         metadata.set(
-                Property.internalDate(Metadata.MODIFIED),
+                TikaCoreProperties.MODIFIED,
                 font.getHeader().getModified().getTime());
 
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlHandler.java Thu May 17 20:05:20 2012
@@ -26,6 +26,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.sax.TextContentHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
@@ -233,7 +234,7 @@ class HtmlHandler extends TextContentHan
         if (titleLevel > 0) {
             titleLevel--;
             if (titleLevel == 0) {
-                metadata.set(Metadata.TITLE, title.toString().trim());
+                metadata.set(TikaCoreProperties.TITLE, title.toString().trim());
             }
         }
         if (bodyLevel > 0) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java Thu May 17 20:05:20 2012
@@ -148,7 +148,7 @@ public class HtmlParser extends Abstract
                 String language = match.getLanguage();
                 if (language != null) {
                     metadata.set(Metadata.CONTENT_LANGUAGE, match.getLanguage());
-                    metadata.set(Metadata.LANGUAGE, match.getLanguage());
+                    metadata.set(TikaCoreProperties.LANGUAGE, match.getLanguage());
                 }
                 */
                 

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java Thu May 17 20:05:20 2012
@@ -33,6 +33,7 @@ import org.apache.tika.exception.TikaExc
 import org.apache.tika.metadata.Geographic;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.xml.sax.SAXException;
 
 import com.drew.imaging.jpeg.JpegProcessingException;
@@ -300,9 +301,9 @@ public class ImageMetadataExtractor {
          * Use IPTC for other annotation fields, and XMP for unicode support.
          */
         public void handleCommentTags(Directory directory, Metadata metadata) {
-            if (metadata.get(Metadata.DESCRIPTION) == null &&
+            if (metadata.get(TikaCoreProperties.DESCRIPTION) == null &&
                     directory.containsTag(ExifDirectory.TAG_IMAGE_DESCRIPTION)) {
-                metadata.set(Metadata.DESCRIPTION, directory.getString(ExifDirectory.TAG_IMAGE_DESCRIPTION));
+                metadata.set(TikaCoreProperties.DESCRIPTION, directory.getString(ExifDirectory.TAG_IMAGE_DESCRIPTION));
             }
         }
         /**
@@ -415,7 +416,7 @@ public class ImageMetadataExtractor {
                 // Unless we have GPS time we don't know the time zone so date must be set
                 // as ISO 8601 datetime without timezone suffix (no Z or +/-)
                 String datetimeNoTimeZone = DATE_UNSPECIFIED_TZ.format(original); // Same time zone as Metadata Extractor uses
-                metadata.set(Metadata.DATE, datetimeNoTimeZone);
+                metadata.set(TikaCoreProperties.DATE, datetimeNoTimeZone);
                 metadata.set(Metadata.ORIGINAL_DATE, datetimeNoTimeZone);
             }
             if (directory.containsTag(ExifDirectory.TAG_DATETIME)) {
@@ -424,7 +425,7 @@ public class ImageMetadataExtractor {
                 metadata.set(Metadata.LAST_MODIFIED, datetimeNoTimeZone);
                 // If Date/Time Original does not exist this might be creation date
                 if (original == null) {
-                    metadata.set(Metadata.DATE, datetimeNoTimeZone);
+                    metadata.set(TikaCoreProperties.DATE, datetimeNoTimeZone);
                 }
             }
         }
@@ -447,15 +448,15 @@ public class ImageMetadataExtractor {
                 }
             }
             if (directory.containsTag(IptcDirectory.TAG_HEADLINE)) {
-                metadata.set(Metadata.TITLE, directory.getString(IptcDirectory.TAG_HEADLINE));
+                metadata.set(TikaCoreProperties.TITLE, directory.getString(IptcDirectory.TAG_HEADLINE));
             } else if (directory.containsTag(IptcDirectory.TAG_OBJECT_NAME)) {
-                metadata.set(Metadata.TITLE, directory.getString(IptcDirectory.TAG_OBJECT_NAME));
+                metadata.set(TikaCoreProperties.TITLE, directory.getString(IptcDirectory.TAG_OBJECT_NAME));
             }
             if (directory.containsTag(IptcDirectory.TAG_BY_LINE)) {
                 metadata.set(Metadata.AUTHOR, directory.getString(IptcDirectory.TAG_BY_LINE));
             }
             if (directory.containsTag(IptcDirectory.TAG_CAPTION)) {
-                metadata.set(Metadata.DESCRIPTION,
+                metadata.set(TikaCoreProperties.DESCRIPTION,
                         // Looks like metadata extractor returns IPTC newlines as a single carriage return,
                         // but the exiv2 command does not so we change to line feed here because that is less surprising to users                        
                         directory.getString(IptcDirectory.TAG_CAPTION).replaceAll("\r\n?", "\n"));

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/MetadataFields.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/MetadataFields.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/MetadataFields.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/MetadataFields.java Thu May 17 20:05:20 2012
@@ -22,6 +22,7 @@ import java.util.HashSet;
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 /**
  * Knowns about all declared {@link Metadata} fields.
@@ -32,9 +33,8 @@ public abstract class MetadataFields {
     
     private static HashSet<String> known;
     
-    static {
-        known = new HashSet<String>();
-        Field[] fields = Metadata.class.getFields();
+    private static void setKnownForClass(Class<?> clazz) {
+        Field[] fields = clazz.getFields();
         for (Field f : fields) {
             int mod = f.getModifiers();
             if (Modifier.isPublic(mod) && Modifier.isStatic(mod) && Modifier.isFinal(mod)) {
@@ -67,8 +67,18 @@ public abstract class MetadataFields {
         }
     }
     
+    static {
+        known = new HashSet<String>();
+        setKnownForClass(TikaCoreProperties.class);
+        setKnownForClass(Metadata.class);
+    }
+    
     public static boolean isMetadataField(String name) {
         return known.contains(name);
     }
     
+    public static boolean isMetadataField(Property property) {
+        return known.contains(property.getName());
+    }
+    
 }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/PSDParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/PSDParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/PSDParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/PSDParser.java Thu May 17 20:05:20 2012
@@ -29,6 +29,7 @@ import org.apache.tika.exception.TikaExc
 import org.apache.tika.io.EndianUtils;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TIFF;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -114,7 +115,7 @@ public class PSDParser extends AbstractP
            
            // Is it one we can do something useful with?
            if(rb.id == ResourceBlock.ID_CAPTION) {
-              metadata.add(Metadata.DESCRIPTION, rb.getDataAsString()); 
+              metadata.add(TikaCoreProperties.DESCRIPTION, rb.getDataAsString()); 
            } else if(rb.id == ResourceBlock.ID_EXIF_1) {
               // TODO Parse the EXIF info
            } else if(rb.id == ResourceBlock.ID_EXIF_3) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/xmp/JempboxExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/xmp/JempboxExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/xmp/JempboxExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/xmp/JempboxExtractor.java Thu May 17 20:05:20 2012
@@ -28,8 +28,8 @@ import java.util.List;
 import org.apache.jempbox.xmp.XMPMetadata;
 import org.apache.jempbox.xmp.XMPSchemaDublinCore;
 import org.apache.tika.exception.TikaException;
-import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.xml.sax.InputSource;
 
 public class JempboxExtractor {
@@ -59,18 +59,18 @@ public class JempboxExtractor {
             XMPSchemaDublinCore dc = xmp.getDublinCoreSchema();
             if (dc != null) {
                 if (dc.getTitle() != null) {
-                    metadata.set(Metadata.TITLE, dc.getTitle());
+                    metadata.set(TikaCoreProperties.TITLE, dc.getTitle());
                 }
                 if (dc.getDescription() != null) {
-                    metadata.set(Metadata.DESCRIPTION, dc.getDescription());
+                    metadata.set(TikaCoreProperties.DESCRIPTION, dc.getDescription());
                 }
                 if (dc.getCreators() != null && dc.getCreators().size() > 0) {
-                    metadata.set(Metadata.CREATOR, joinCreators(dc.getCreators()));
+                    metadata.set(TikaCoreProperties.CREATOR, joinCreators(dc.getCreators()));
                 }
                 if (dc.getSubjects() != null && dc.getSubjects().size() > 0) {
                     Iterator<String> keywords = dc.getSubjects().iterator();
                     while (keywords.hasNext()) {
-                        metadata.add(Metadata.SUBJECT, keywords.next());
+                        metadata.add(TikaCoreProperties.SUBJECT, keywords.next());
                     }
                     // TODO should we set KEYWORDS too?
                     // All tested photo managers set the same in Iptc.Application2.Keywords and Xmp.dc.subject

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java Thu May 17 20:05:20 2012
@@ -18,8 +18,6 @@ package org.apache.tika.parser.iptc;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
@@ -29,8 +27,8 @@ import java.util.Set;
 import java.util.TimeZone;
 
 import org.apache.tika.exception.TikaException;
-import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
@@ -772,19 +770,19 @@ public class IptcAnpaParser implements P
       // every property that gets set must be non-null, or it will cause NPE
       // in other consuming applications, like Lucene
       metadata.set(Metadata.CONTENT_TYPE,  clean("text/anpa-1312"));
-      metadata.set(Metadata.TITLE,         clean(properties.get("title")));
-      metadata.set(Metadata.SUBJECT,       clean(properties.get("subject")));
+      metadata.set(TikaCoreProperties.TITLE,         clean(properties.get("title")));
+      metadata.set(TikaCoreProperties.SUBJECT,       clean(properties.get("subject")));
       metadata.set(Metadata.AUTHOR,        clean(properties.get("author")));
       metadata.set(Metadata.CREATION_DATE, clean(properties.get("created")));
-      metadata.set(Metadata.MODIFIED,      clean(properties.get("modified")));
-      metadata.set(Metadata.SOURCE,      clean(properties.get("source")));
-//      metadata.set(Metadata.PUBLISHER,     clean(properties.get("publisher")));
-      metadata.set(Metadata.PUBLISHER,     clean(this.getFormatName()));
+      metadata.set(TikaCoreProperties.MODIFIED,      clean(properties.get("modified")));
+      metadata.set(TikaCoreProperties.SOURCE,      clean(properties.get("source")));
+//      metadata.set(TikaCoreProperties.PUBLISHER,     clean(properties.get("publisher")));
+      metadata.set(TikaCoreProperties.PUBLISHER,     clean(this.getFormatName()));
 
 /*
-        metadata.set(Metadata.DATE, font.getHeader().getCreated().getTime());
+        metadata.set(TikaCoreProperties.DATE, font.getHeader().getCreated().getTime());
         metadata.set(
-                Property.internalDate(Metadata.MODIFIED),
+                Property.internalDate(TikaCoreProperties.MODIFIED),
                 font.getHeader().getModified().getTime());
 */
    }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java Thu May 17 20:05:20 2012
@@ -17,6 +17,7 @@
 package org.apache.tika.parser.iwork;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -90,7 +91,7 @@ class KeynoteContentHandler extends Defa
         } else if (inMetadata && "key:authors".equals(qName)) {
             inMetaDataAuthors = true;
         } else if (inMetaDataTitle && "key:string".equals(qName)) {
-            metadata.set(Metadata.TITLE, attributes.getValue("sfa:string"));
+            metadata.set(TikaCoreProperties.TITLE, attributes.getValue("sfa:string"));
         } else if (inMetaDataAuthors && "key:string".equals(qName)) {
             metadata.add(Metadata.AUTHOR, attributes.getValue("sfa:string"));
         } else if (inSlide && "sf:tabular-model".equals(qName)) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/NumbersContentHandler.java Thu May 17 20:05:20 2012
@@ -17,6 +17,8 @@
 package org.apache.tika.parser.iwork;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -36,7 +38,7 @@ class NumbersContentHandler extends Defa
     private boolean parseText = false;
 
     private boolean inMetadata = false;
-    private String metadataKey;
+    private Property metadataKey;
     private String metadataPropertyQName;
 
     private boolean inTable = false;
@@ -202,11 +204,13 @@ class NumbersContentHandler extends Defa
         }
     }
 
-    private String resolveMetadataKey(String localName) {
+    private Property resolveMetadataKey(String localName) {
         if ("authors".equals(localName)) {
-            return Metadata.AUTHOR;
+            return Property.internalText(Metadata.AUTHOR);
         }
-
-        return localName;
+        if ("title".equals(localName)) {
+            return TikaCoreProperties.TITLE;
+        }
+        return Property.internalText(localName);
     }
 }
\ No newline at end of file

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/PagesContentHandler.java Thu May 17 20:05:20 2012
@@ -18,6 +18,7 @@ package org.apache.tika.parser.iwork;
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -252,13 +253,13 @@ class PagesContentHandler extends Defaul
         if ("sf:authors".equals(metaDataQName)) {
             metaDataKey = Metadata.AUTHOR;
         } else if ("sf:title".equals(metaDataQName)) {
-            metaDataKey = Metadata.TITLE;
+            metaDataKey = TikaCoreProperties.TITLE;
         } else if ("sl:SLCreationDateProperty".equals(metaDataQName)) {
             metaDataKey = Metadata.CREATION_DATE;
         } else if ("sl:SLLastModifiedDateProperty".equals(metaDataQName)) {
             metaDataKey = Metadata.LAST_MODIFIED;
         } else if ("sl:language".equals(metaDataQName)) {
-            metaDataKey = Metadata.LANGUAGE;
+            metaDataKey = TikaCoreProperties.LANGUAGE;
         }
         return metaDataKey;
     }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java Thu May 17 20:05:20 2012
@@ -24,7 +24,6 @@ import org.apache.james.mime4j.codec.Dec
 import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.james.mime4j.dom.address.Address;
 import org.apache.james.mime4j.dom.address.AddressList;
-import org.apache.james.mime4j.dom.address.Group;
 import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.dom.address.MailboxList;
 import org.apache.james.mime4j.dom.field.AddressListField;
@@ -38,6 +37,7 @@ import org.apache.james.mime4j.stream.Bo
 import org.apache.james.mime4j.stream.Field;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.AutoDetectParser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.EmbeddedContentHandler;
@@ -161,7 +161,7 @@ class MailContentHandler implements Cont
                     metadata.add(Metadata.AUTHOR, from);
                 }
             } else if (fieldname.equalsIgnoreCase("Subject")) {
-                metadata.add(Metadata.SUBJECT,
+                metadata.add(TikaCoreProperties.SUBJECT,
                         ((UnstructuredField) parsedField).getValue());
             } else if (fieldname.equalsIgnoreCase("To")) {
                 processAddressList(parsedField, "To:", Metadata.MESSAGE_TO);
@@ -171,7 +171,7 @@ class MailContentHandler implements Cont
                 processAddressList(parsedField, "Bcc:", Metadata.MESSAGE_BCC);
             } else if (fieldname.equalsIgnoreCase("Date")) {
                 DateTimeField dateField = (DateTimeField) parsedField;
-                metadata.set(Metadata.DATE, dateField.getDate());
+                metadata.set(TikaCoreProperties.DATE, dateField.getDate());
                 metadata.set(Metadata.CREATION_DATE, dateField.getDate());
             }
         } catch (RuntimeException me) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java Thu May 17 20:05:20 2012
@@ -32,6 +32,7 @@ import java.util.regex.Pattern;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -198,7 +199,7 @@ public class MboxParser extends Abstract
 
         if (headerTag.equalsIgnoreCase("From")) {
             metadata.add(Metadata.AUTHOR, headerContent);
-            metadata.add(Metadata.CREATOR, headerContent);
+            metadata.set(TikaCoreProperties.CREATOR, headerContent);
         } else if (headerTag.equalsIgnoreCase("To") ||
         	headerTag.equalsIgnoreCase("Cc") ||
         	headerTag.equalsIgnoreCase("Bcc")) {
@@ -217,26 +218,26 @@ public class MboxParser extends Abstract
             }
             metadata.add(property, headerContent);
         } else if (headerTag.equalsIgnoreCase("Subject")) {
-            metadata.add(Metadata.SUBJECT, headerContent);
-            metadata.add(Metadata.TITLE, headerContent);
+            metadata.add(TikaCoreProperties.SUBJECT, headerContent);
+            metadata.set(TikaCoreProperties.TITLE, headerContent);
         } else if (headerTag.equalsIgnoreCase("Date")) {
             try {
                 Date date = parseDate(headerContent);
-                metadata.set(Metadata.DATE, date);
+                metadata.set(TikaCoreProperties.DATE, date);
                 metadata.set(Metadata.CREATION_DATE, date);
             } catch (ParseException e) {
                 // ignoring date because format was not understood
             }
         } else if (headerTag.equalsIgnoreCase("Message-Id")) {
-            metadata.add(Metadata.IDENTIFIER, headerContent);
+            metadata.set(TikaCoreProperties.IDENTIFIER, headerContent);
         } else if (headerTag.equalsIgnoreCase("In-Reply-To")) {
-            metadata.add(Metadata.RELATION, headerContent);
+            metadata.set(TikaCoreProperties.RELATION, headerContent);
         } else if (headerTag.equalsIgnoreCase("Content-Type")) {
             // TODO - key off content-type in headers to
             // set mapping to use for content and convert if necessary.
 
             metadata.add(Metadata.CONTENT_TYPE, headerContent);
-            metadata.add(Metadata.FORMAT, headerContent);
+            metadata.set(TikaCoreProperties.FORMAT, headerContent);
         } else {
             metadata.add(EMAIL_HEADER_METADATA_PREFIX + headerTag, headerContent);
         }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java Thu May 17 20:05:20 2012
@@ -35,6 +35,7 @@ import org.apache.poi.poifs.filesystem.N
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.html.HtmlParser;
 import org.apache.tika.parser.mbox.MboxParser;
@@ -102,8 +103,8 @@ public class OutlookExtractor extends Ab
            metadata.set(Metadata.MESSAGE_CC, msg.getDisplayCC());
            metadata.set(Metadata.MESSAGE_BCC, msg.getDisplayBCC());
            
-           metadata.set(Metadata.TITLE, subject);
-           metadata.set(Metadata.SUBJECT, msg.getConversationTopic());
+           metadata.set(TikaCoreProperties.TITLE, subject);
+           metadata.set(TikaCoreProperties.SUBJECT, msg.getConversationTopic());
            
            try {
            for(String recipientAddress : msg.getRecipientEmailAddressList()) {
@@ -115,7 +116,7 @@ public class OutlookExtractor extends Ab
            // Date - try two ways to find it
            // First try via the proper chunk
            if(msg.getMessageDate() != null) {
-              metadata.set(Metadata.DATE, msg.getMessageDate().getTime());
+              metadata.set(TikaCoreProperties.DATE, msg.getMessageDate().getTime());
               metadata.set(Metadata.CREATION_DATE, msg.getMessageDate().getTime());
               metadata.set(Metadata.LAST_SAVED, msg.getMessageDate().getTime());
            } else {
@@ -130,12 +131,12 @@ public class OutlookExtractor extends Ab
                             // See if we can parse it as a normal mail date
                             try {
                                Date d = MboxParser.parseDate(date);
-                               metadata.set(Metadata.DATE, d);
+                               metadata.set(TikaCoreProperties.DATE, d);
                                metadata.set(Metadata.CREATION_DATE, d);
                                metadata.set(Metadata.LAST_SAVED, d);
                             } catch(ParseException e) {
                                // Store it as-is, and hope for the best...
-                               metadata.set(Metadata.DATE, date);
+                               metadata.set(TikaCoreProperties.DATE, date);
                                metadata.set(Metadata.CREATION_DATE, date);
                                metadata.set(Metadata.LAST_SAVED, date);
                             }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/SummaryExtractor.java Thu May 17 20:05:20 2012
@@ -35,6 +35,7 @@ import org.apache.tika.exception.TikaExc
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.PagedText;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 /**
  * Outlook Message Parser.
@@ -90,10 +91,10 @@ class SummaryExtractor {
     }
 
     private void parse(SummaryInformation summary) {
-        set(Metadata.TITLE, summary.getTitle());
+        set(TikaCoreProperties.TITLE, summary.getTitle());
         set(Metadata.AUTHOR, summary.getAuthor());
         set(Metadata.KEYWORDS, summary.getKeywords());
-        set(Metadata.SUBJECT, summary.getSubject());
+        set(TikaCoreProperties.SUBJECT, summary.getSubject());
         set(Metadata.LAST_AUTHOR, summary.getLastAuthor());
         set(Metadata.COMMENTS, summary.getComments());
         set(Metadata.TEMPLATE, summary.getTemplate());
@@ -115,7 +116,7 @@ class SummaryExtractor {
     private void parse(DocumentSummaryInformation summary) {
         set(Metadata.COMPANY, summary.getCompany());
         set(Metadata.MANAGER, summary.getManager());
-        set(Metadata.LANGUAGE, getLanguage(summary));
+        set(TikaCoreProperties.LANGUAGE, getLanguage(summary));
         set(Metadata.CATEGORY, summary.getCategory());
         set(Metadata.SLIDE_COUNT, summary.getSlideCount());
         if (summary.getSlideCount() > 0) {
@@ -175,6 +176,12 @@ class SummaryExtractor {
             metadata.set(name, value);
         }
     }
+    
+    private void set(Property property, String value) {
+        if (value != null) {
+            metadata.set(property, value);
+        }
+    }
 
     private void set(Property property, Date value) {
         if (value != null) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java Thu May 17 20:05:20 2012
@@ -33,6 +33,7 @@ import org.apache.tika.extractor.Embedde
 import org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -81,7 +82,7 @@ public class TNEFParser extends Abstract
        // Set the message subject if known
        String subject = msg.getSubject();
        if(subject != null && subject.length() > 0) {
-          metadata.set(Metadata.SUBJECT, subject);
+          metadata.set(TikaCoreProperties.SUBJECT, subject);
        }
        
        // Recurse into the message body RTF

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/MetadataExtractor.java Thu May 17 20:05:20 2012
@@ -30,6 +30,7 @@ import org.apache.tika.exception.TikaExc
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.PagedText;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperty;
 import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties;
 
@@ -65,21 +66,21 @@ public class MetadataExtractor {
         addProperty(metadata, Metadata.CATEGORY, propsHolder.getCategoryProperty());
         addProperty(metadata, Metadata.CONTENT_STATUS, propsHolder
                 .getContentStatusProperty());
-        addProperty(metadata, Metadata.DATE, propsHolder
+        addProperty(metadata, TikaCoreProperties.DATE, propsHolder
                 .getCreatedProperty());
         addProperty(metadata, Metadata.CREATION_DATE, propsHolder
                 .getCreatedProperty());
-        addProperty(metadata, Metadata.CREATOR, propsHolder
+        addProperty(metadata, TikaCoreProperties.CREATOR, propsHolder
                 .getCreatorProperty());
         addProperty(metadata, Metadata.AUTHOR, propsHolder
                 .getCreatorProperty());
-        addProperty(metadata, Metadata.DESCRIPTION, propsHolder
+        addProperty(metadata, TikaCoreProperties.DESCRIPTION, propsHolder
                 .getDescriptionProperty());
-        addProperty(metadata, Metadata.IDENTIFIER, propsHolder
+        addProperty(metadata, TikaCoreProperties.IDENTIFIER, propsHolder
                 .getIdentifierProperty());
         addProperty(metadata, Metadata.KEYWORDS, propsHolder
                 .getKeywordsProperty());
-        addProperty(metadata, Metadata.LANGUAGE, propsHolder
+        addProperty(metadata, TikaCoreProperties.LANGUAGE, propsHolder
                 .getLanguageProperty());
         addProperty(metadata, Metadata.LAST_AUTHOR, propsHolder
                 .getLastModifiedByProperty());
@@ -89,9 +90,9 @@ public class MetadataExtractor {
                 .getModifiedProperty());
         addProperty(metadata, Metadata.REVISION_NUMBER, propsHolder
                 .getRevisionProperty());
-        addProperty(metadata, Metadata.SUBJECT, propsHolder
+        addProperty(metadata, TikaCoreProperties.SUBJECT, propsHolder
                 .getSubjectProperty());
-        addProperty(metadata, Metadata.TITLE, propsHolder.getTitleProperty());
+        addProperty(metadata, TikaCoreProperties.TITLE, propsHolder.getTitleProperty());
         addProperty(metadata, Metadata.VERSION, propsHolder.getVersionProperty());
     }
 
@@ -107,7 +108,7 @@ public class MetadataExtractor {
                 .getCharacters());
         addProperty(metadata, Metadata.CHARACTER_COUNT_WITH_SPACES, propsHolder
                 .getCharactersWithSpaces());
-        addProperty(metadata, Metadata.PUBLISHER, propsHolder.getCompany());
+        addProperty(metadata, TikaCoreProperties.PUBLISHER, propsHolder.getCompany());
         addProperty(metadata, Metadata.LINE_COUNT, propsHolder.getLines());
         addProperty(metadata, Metadata.MANAGER, propsHolder.getManager());
         addProperty(metadata, Metadata.NOTES, propsHolder.getNotes());
@@ -234,9 +235,18 @@ public class MetadataExtractor {
        }
     }
     
-    private void addProperty(Metadata metadata, Property property, Nullable<Date> value) {
-        if (value.getValue() != null) {
-            metadata.set(property, value.getValue());
+    private <T> void addProperty(Metadata metadata, Property property, Nullable<T> nullableValue) {
+        T value = nullableValue.getValue();
+        if (value != null) {
+            if (value instanceof Date) {
+                metadata.set(property, (Date) value);
+            } else if (value instanceof String) {
+                metadata.set(property, (String) value);
+            } else if (value instanceof Integer) {
+                metadata.set(property, (Integer) value);
+            } else if (value instanceof Double) {
+                metadata.set(property, (Double) value);
+            }
         }
     }
 
@@ -245,6 +255,12 @@ public class MetadataExtractor {
             addProperty(metadata, name, value.getValue().toString());
         }
     }
+    
+    private void addProperty(Metadata metadata, Property property, String value) {
+        if (value != null) {
+            metadata.set(property, value);
+        }
+    }
 
     private void addProperty(Metadata metadata, String name, String value) {
         if (value != null) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java Thu May 17 20:05:20 2012
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.metadata.XMPDM;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
@@ -71,7 +72,7 @@ public class Mp3Parser extends AbstractP
         if (audioAndTags.tags.length > 0) {
            CompositeTagHandler tag = new CompositeTagHandler(audioAndTags.tags);
 
-           metadata.set(Metadata.TITLE, tag.getTitle());
+           metadata.set(TikaCoreProperties.TITLE, tag.getTitle());
            metadata.set(Metadata.AUTHOR, tag.getArtist());
            metadata.set(XMPDM.ARTIST, tag.getArtist());
            metadata.set(XMPDM.COMPOSER, tag.getComposer());

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java Thu May 17 20:05:20 2012
@@ -30,6 +30,7 @@ import org.apache.tika.exception.TikaExc
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.metadata.XMPDM;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
@@ -162,7 +163,7 @@ public class MP4Parser extends AbstractP
                  MP4TimeToDate(mHeader.getCreationTime())
            );
            metadata.set(
-                 Property.externalDate(Metadata.MODIFIED), // TODO Should be a real property
+                 TikaCoreProperties.MODIFIED,
                  MP4TimeToDate(mHeader.getModificationTime())
            );
            
@@ -188,7 +189,7 @@ public class MP4Parser extends AbstractP
                  MP4TimeToDate(header.getCreationTime())
            );
            metadata.set(
-                 Property.externalDate(Metadata.MODIFIED), // TODO Should be a real property
+                 TikaCoreProperties.MODIFIED,
                  MP4TimeToDate(header.getModificationTime())
            );
            
@@ -224,7 +225,7 @@ public class MP4Parser extends AbstractP
            if (apple != null) {
               // Title
               AppleTrackTitleBox title = getOrNull(apple, AppleTrackTitleBox.class);
-              addMetadata(Metadata.TITLE, metadata, title);
+              addMetadata(TikaCoreProperties.TITLE, metadata, title);
 
               // Artist
               AppleArtistBox artist = getOrNull(apple, AppleArtistBox.class);

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java Thu May 17 20:05:20 2012
@@ -26,6 +26,8 @@ import java.util.Set;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -86,12 +88,12 @@ public class NetCDFParser extends Abstra
 
             // first parse out the set of global attributes
             for (Attribute attr : ncFile.getGlobalAttributes()) {
-                String attrName = attr.getName();
+                Property property = resolveMetadataKey(attr.getName());
                 if (attr.getDataType().isString()) {
-                    metadata.add(attrName, attr.getStringValue());
+                    metadata.add(property, attr.getStringValue());
                 } else if (attr.getDataType().isNumeric()) {
                     int value = attr.getNumericValue().intValue();
-                    metadata.add(attrName, String.valueOf(value));
+                    metadata.add(property, String.valueOf(value));
                 }
             }
         } catch (IOException e) {
@@ -102,5 +104,12 @@ public class NetCDFParser extends Abstra
         xhtml.startDocument();
         xhtml.endDocument();
     }
+    
+    private Property resolveMetadataKey(String localName) {
+        if ("title".equals(localName)) {
+            return TikaCoreProperties.TITLE;
+        }
+        return Property.internalText(localName);
+    }
 
 }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java Thu May 17 20:05:20 2012
@@ -39,6 +39,7 @@ import org.apache.tika.io.TikaInputStrea
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.PagedText;
 import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -152,12 +153,12 @@ public class PDFParser extends AbstractP
             throws TikaException {
         PDDocumentInformation info = document.getDocumentInformation();
         metadata.set(PagedText.N_PAGES, document.getNumberOfPages());
-        addMetadata(metadata, Metadata.TITLE, info.getTitle());
+        addMetadata(metadata, TikaCoreProperties.TITLE, info.getTitle());
         addMetadata(metadata, Metadata.AUTHOR, info.getAuthor());
-        addMetadata(metadata, Metadata.CREATOR, info.getCreator());
+        addMetadata(metadata, TikaCoreProperties.CREATOR, info.getCreator());
         addMetadata(metadata, Metadata.KEYWORDS, info.getKeywords());
         addMetadata(metadata, "producer", info.getProducer());
-        addMetadata(metadata, Metadata.SUBJECT, info.getSubject());
+        addMetadata(metadata, TikaCoreProperties.SUBJECT, info.getSubject());
         addMetadata(metadata, "trapped", info.getTrapped());
         try {
             addMetadata(metadata, "created", info.getCreationDate());
@@ -186,6 +187,12 @@ public class PDFParser extends AbstractP
         }
     }
 
+    private void addMetadata(Metadata metadata, Property property, String value) {
+        if (value != null) {
+            metadata.add(property, value);
+        }
+    }
+    
     private void addMetadata(Metadata metadata, String name, String value) {
         if (value != null) {
             metadata.add(name, value);

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/prt/PRTParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/prt/PRTParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/prt/PRTParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/prt/PRTParser.java Thu May 17 20:05:20 2012
@@ -26,6 +26,7 @@ import org.apache.poi.util.IOUtils;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.EndianUtils;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AbstractParser;
 import org.apache.tika.parser.ParseContext;
@@ -85,7 +86,7 @@ public class PRTParser extends AbstractP
              "-" + dateStr.substring(6,8) + "T" + dateStr.substring(8,10) + ":" +
              dateStr.substring(10, 12) + ":00";
           metadata.set(Metadata.CREATION_DATE, formattedDate);
-          metadata.set(Metadata.DATE, formattedDate);
+          metadata.set(TikaCoreProperties.DATE, formattedDate);
        }
        metadata.set(Metadata.CONTENT_TYPE, PRT_MIME_TYPE);
        
@@ -94,7 +95,7 @@ public class PRTParser extends AbstractP
        IOUtils.readFully(stream, desc);
        String description = extractText(desc, true);
        if(description.length() > 0) {
-          metadata.set(Metadata.DESCRIPTION, description);
+          metadata.set(TikaCoreProperties.DESCRIPTION, description);
        }
        
        // Now look for text

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/TextExtractor.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/TextExtractor.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/TextExtractor.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/TextExtractor.java Thu May 17 20:05:20 2012
@@ -32,6 +32,7 @@ import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.apache.tika.utils.CharsetUtils;
 import org.xml.sax.SAXException;
@@ -827,9 +828,9 @@ final class TextExtractor {
                 if (equals("author")) {
                     nextMetaData = Metadata.AUTHOR;
                 } else if (equals("title")) {
-                    nextMetaData = Metadata.TITLE;
+                    nextMetaData = TikaCoreProperties.TITLE.getName();
                 } else if (equals("subject")) {
-                    nextMetaData = Metadata.SUBJECT;
+                    nextMetaData = TikaCoreProperties.SUBJECT.getName();
                 } else if (equals("keywords")) {
                     nextMetaData = Metadata.KEYWORDS;
                 } else if (equals("category")) {

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/DcXMLParser.java Thu May 17 20:05:20 2012
@@ -16,8 +16,9 @@
  */
 package org.apache.tika.parser.xml;
 
-import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.Property;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.TeeContentHandler;
 import org.xml.sax.ContentHandler;
@@ -31,28 +32,28 @@ public class DcXMLParser extends XMLPars
     private static final long serialVersionUID = 4905318835463880819L;
 
     private static ContentHandler getDublinCoreHandler(
-            Metadata metadata, String name, String element) {
+            Metadata metadata, Property property, String element) {
         return new ElementMetadataHandler(
                 "http://purl.org/dc/elements/1.1/", element,
-                metadata, name);
+                metadata, property);
     }
 
     protected ContentHandler getContentHandler(
             ContentHandler handler, Metadata metadata, ParseContext context) {
         return new TeeContentHandler(
                 super.getContentHandler(handler, metadata, context),
-                getDublinCoreHandler(metadata, Metadata.TITLE, "title"),
-                getDublinCoreHandler(metadata, Metadata.SUBJECT, "subject"),
-                getDublinCoreHandler(metadata, Metadata.CREATOR, "creator"),
-                getDublinCoreHandler(metadata, Metadata.DESCRIPTION, "description"),
-                getDublinCoreHandler(metadata, Metadata.PUBLISHER, "publisher"),
-                getDublinCoreHandler(metadata, Metadata.CONTRIBUTOR, "contributor"),
-                getDublinCoreHandler(metadata, Metadata.DATE.getName(), "date"),
-                getDublinCoreHandler(metadata, Metadata.TYPE, "type"),
-                getDublinCoreHandler(metadata, Metadata.FORMAT, "format"),
-                getDublinCoreHandler(metadata, Metadata.IDENTIFIER, "identifier"),
-                getDublinCoreHandler(metadata, Metadata.LANGUAGE, "language"),
-                getDublinCoreHandler(metadata, Metadata.RIGHTS, "rights"));
+                getDublinCoreHandler(metadata, TikaCoreProperties.TITLE, "title"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.SUBJECT, "subject"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.CREATOR, "creator"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.DESCRIPTION, "description"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.PUBLISHER, "publisher"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.CONTRIBUTOR, "contributor"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.DATE, "date"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.TYPE, "type"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.FORMAT, "format"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.IDENTIFIER, "identifier"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.LANGUAGE, "language"),
+                getDublinCoreHandler(metadata, TikaCoreProperties.RIGHTS, "rights"));
     }
 
 }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/ElementMetadataHandler.java Thu May 17 20:05:20 2012
@@ -82,7 +82,7 @@ public class ElementMetadataHandler exte
 
     public ElementMetadataHandler(
             String uri, String localName, Metadata metadata, Property targetProperty) {
-    	super(metadata, targetProperty.getName());
+        super(metadata, targetProperty);
         this.uri = uri;
         this.localName = localName;
         this.metadata = metadata;
@@ -164,12 +164,11 @@ public class ElementMetadataHandler exte
         if (logger.isTraceEnabled()) {
             logger.trace("adding " + name + "=" + value);
         }
-        if (targetProperty != null && targetProperty.getPropertyType() != null &&
-             targetProperty.getPropertyType() == Property.PropertyType.BAG) {
+        if (targetProperty != null && targetProperty.isMultiValuePermitted()) {
             if (value != null && value.length() > 0) {
                 String[] previous = metadata.getValues(name);
                 if (previous == null || !Arrays.asList(previous).contains(value)) {
-                    metadata.add(name, value);
+                    metadata.add(targetProperty, value);
                 }
             }
         } else {

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/TestParsers.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/TestParsers.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/TestParsers.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/TestParsers.java Thu May 17 20:05:20 2012
@@ -22,6 +22,7 @@ import java.io.InputStream;
 
 import org.apache.tika.config.TikaConfig;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.xml.sax.helpers.DefaultHandler;
@@ -51,7 +52,7 @@ public class TestParsers extends TikaTes
         } finally {
             stream.close();
         }
-        assertEquals("Sample Word Document", metadata.get(Metadata.TITLE));
+        assertEquals("Sample Word Document", metadata.get(TikaCoreProperties.TITLE));
     }
 
     public void testEXCELExtraction() throws Exception {
@@ -69,7 +70,7 @@ public class TestParsers extends TikaTes
         } finally {
             stream.close();
         }
-        assertEquals("Simple Excel document", metadata.get(Metadata.TITLE));
+        assertEquals("Simple Excel document", metadata.get(TikaCoreProperties.TITLE));
     }
 
     public void testOptionalHyphen() throws Exception {

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java Thu May 17 20:05:20 2012
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import java.io.Reader;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 import junit.framework.TestCase;
 
@@ -83,7 +84,7 @@ public class ParsingReaderTest extends T
                 new AutoDetectParser(), stream, metadata, new ParseContext());
         try {
             // Metadata should already be available
-            assertEquals("Simple Excel document", metadata.get(Metadata.TITLE));
+            assertEquals("Simple Excel document", metadata.get(TikaCoreProperties.TITLE));
             // Check that the internal buffering isn't broken
             assertEquals('F', (char) reader.read());
             assertEquals('e', (char) reader.read());

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java Thu May 17 20:05:20 2012
@@ -20,6 +20,7 @@ import junit.framework.TestCase;
 
 import org.apache.tika.Tika;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 /**
  * Test case for parsing Java class files.
@@ -32,7 +33,7 @@ public class ClassParserTest extends Tes
         String content = new Tika().parseToString(
                 ClassParserTest.class.getResourceAsStream(path), metadata);
 
-        assertEquals("AutoDetectParser", metadata.get(Metadata.TITLE));
+        assertEquals("AutoDetectParser", metadata.get(TikaCoreProperties.TITLE));
         assertEquals(
                 "AutoDetectParser.class",
                 metadata.get(Metadata.RESOURCE_NAME_KEY));

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java Thu May 17 20:05:20 2012
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import junit.framework.TestCase;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.xml.sax.ContentHandler;
@@ -38,11 +39,11 @@ public class EpubParserTest extends Test
             assertEquals("application/epub+zip",
                     metadata.get(Metadata.CONTENT_TYPE));
             assertEquals("en",
-                    metadata.get(Metadata.LANGUAGE));
+                    metadata.get(TikaCoreProperties.LANGUAGE));
             assertEquals("This is an ePub test publication for Tika.",
-                    metadata.get(Metadata.DESCRIPTION));
+                    metadata.get(TikaCoreProperties.DESCRIPTION));
             assertEquals("Apache",
-                    metadata.get(Metadata.PUBLISHER));
+                    metadata.get(TikaCoreProperties.PUBLISHER));
 
             String content = handler.toString();
             assertTrue(content.contains("Plus a simple div"));

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java Thu May 17 20:05:20 2012
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import junit.framework.TestCase;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.xml.sax.ContentHandler;
@@ -41,8 +42,8 @@ public class FeedParserTest extends Test
             assertFalse(content == null);
 
             assertEquals("Sample RSS File for Junit test",
-                    metadata.get(Metadata.DESCRIPTION));
-            assertEquals("TestChannel", metadata.get(Metadata.TITLE));
+                    metadata.get(TikaCoreProperties.DESCRIPTION));
+            assertEquals("TestChannel", metadata.get(TikaCoreProperties.TITLE));
 
             // TODO find a way of testing the paragraphs and anchors
 

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/font/AdobeFontMetricParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/font/AdobeFontMetricParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/font/AdobeFontMetricParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/font/AdobeFontMetricParserTest.java Thu May 17 20:05:20 2012
@@ -19,6 +19,7 @@ package org.apache.tika.parser.font;
 import junit.framework.TestCase;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.AutoDetectParser;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
@@ -46,7 +47,7 @@ public class AdobeFontMetricParserTest e
         }
 
         assertEquals("application/x-font-adobe-metric", metadata.get(Metadata.CONTENT_TYPE));
-        assertEquals("TestFullName", metadata.get(Metadata.TITLE));
+        assertEquals("TestFullName", metadata.get(TikaCoreProperties.TITLE));
         assertEquals("Fri Jul 15 17:50:51 2011", metadata.get(Metadata.CREATION_DATE));
         
         assertEquals("TestFontName", metadata.get("FontName"));

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java Thu May 17 20:05:20 2012
@@ -36,6 +36,7 @@ import org.apache.tika.Tika;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Geographic;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.TeeContentHandler;
@@ -76,7 +77,7 @@ public class HtmlParserTest extends Test
         }
 
         assertEquals(
-                "Title : Test Indexation Html", metadata.get(Metadata.TITLE));
+                "Title : Test Indexation Html", metadata.get(TikaCoreProperties.TITLE));
         assertEquals("Tika Developers", metadata.get("Author"));
         assertEquals("5", metadata.get("refresh"));
         
@@ -120,7 +121,7 @@ public class HtmlParserTest extends Test
                 HtmlParserTest.class.getResourceAsStream(path), metadata);
 
         assertEquals("application/xhtml+xml", metadata.get(Metadata.CONTENT_TYPE));
-        assertEquals("XHTML test document", metadata.get(Metadata.TITLE));
+        assertEquals("XHTML test document", metadata.get(TikaCoreProperties.TITLE));
 
         assertEquals("Tika Developers", metadata.get("Author"));
         assertEquals("5", metadata.get("refresh"));
@@ -258,7 +259,7 @@ public class HtmlParserTest extends Test
         new HtmlParser().parse (
                 new ByteArrayInputStream(test.getBytes("UTF-8")),
                 new BodyContentHandler(),  metadata, new ParseContext());
-        assertEquals("\u017d", metadata.get(Metadata.TITLE));
+        assertEquals("\u017d", metadata.get(TikaCoreProperties.TITLE));
     }
 
     /**

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java Thu May 17 20:05:20 2012
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import junit.framework.TestCase;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.epub.EpubParser;
 import org.apache.tika.sax.BodyContentHandler;
@@ -39,11 +40,11 @@ public class iBooksParserTest extends Te
             assertEquals("application/x-ibooks+zip",
                     metadata.get(Metadata.CONTENT_TYPE));
             assertEquals("en-GB",
-                    metadata.get(Metadata.LANGUAGE));
+                    metadata.get(TikaCoreProperties.LANGUAGE));
             assertEquals("iBooks Author v1.0",
-                    metadata.get(Metadata.CONTRIBUTOR));
+                    metadata.get(TikaCoreProperties.CONTRIBUTOR));
             assertEquals("Apache",
-                    metadata.get(Metadata.CREATOR));
+                    metadata.get(TikaCoreProperties.CREATOR));
 
             /* TODO For some reason, the xhtml files in iBooks-style ePub are not parsed properly, and the content comes back empty.git che
             String content = handler.toString();

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/ImageMetadataExtractorTest.java Thu May 17 20:05:20 2012
@@ -20,8 +20,8 @@ import java.util.Arrays;
 import java.util.GregorianCalendar;
 import java.util.Iterator;
 
-import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 import com.drew.metadata.Directory;
 import com.drew.metadata.MetadataException;
@@ -66,7 +66,7 @@ public class ImageMetadataExtractorTest 
         Metadata metadata = new Metadata();
         
         new ImageMetadataExtractor.ExifHandler().handle(exif, metadata);
-        assertEquals("Should be ISO date without time zone", "2000-01-01T00:00:00", metadata.get(Metadata.DATE));
+        assertEquals("Should be ISO date without time zone", "2000-01-01T00:00:00", metadata.get(TikaCoreProperties.DATE));
     }
 
     public void testExifHandlerParseDateFallback() throws MetadataException {
@@ -77,7 +77,7 @@ public class ImageMetadataExtractorTest 
         Metadata metadata = new Metadata();
         
         new ImageMetadataExtractor.ExifHandler().handle(exif, metadata);
-        assertEquals("Should try EXIF Date/Time if Original is not set", "1999-01-01T00:00:00", metadata.get(Metadata.DATE));
+        assertEquals("Should try EXIF Date/Time if Original is not set", "1999-01-01T00:00:00", metadata.get(TikaCoreProperties.DATE));
     }
     
     public void testExifHandlerParseDateError() throws MetadataException {
@@ -88,7 +88,7 @@ public class ImageMetadataExtractorTest 
         Metadata metadata = new Metadata();
         
         new ImageMetadataExtractor.ExifHandler().handle(exif, metadata);
-        assertEquals("Parsing should proceed without date", null, metadata.get(Metadata.DATE));
+        assertEquals("Parsing should proceed without date", null, metadata.get(TikaCoreProperties.DATE));
     }
     
     public void testCopyUnknownFieldsHandler() throws MetadataException {
@@ -100,7 +100,7 @@ public class ImageMetadataExtractorTest 
         when(t2.getTagName()).thenReturn(Metadata.KEYWORDS);
         when(t2.getDescription()).thenReturn("known");
         Tag t3 = mock(Tag.class);
-        when(t3.getTagName()).thenReturn(Metadata.DESCRIPTION);
+        when(t3.getTagName()).thenReturn(TikaCoreProperties.DESCRIPTION.getName());
         when(t3.getDescription()).thenReturn("known");
         Iterator<Tag> tags = Arrays.asList(t1, t2, t3).iterator();
         when(d.getTagIterator()).thenReturn(tags);
@@ -109,7 +109,7 @@ public class ImageMetadataExtractorTest 
         assertEquals("t1", metadata.get("Image Description"));
         assertNull("keywords should be excluded from bulk copy because it is a defined field",
                 metadata.get(Metadata.KEYWORDS));
-        assertNull(metadata.get(Metadata.DESCRIPTION));
+        assertNull(metadata.get(TikaCoreProperties.DESCRIPTION));
     }
     
 }

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/MetadataFieldsTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/MetadataFieldsTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/MetadataFieldsTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/MetadataFieldsTest.java Thu May 17 20:05:20 2012
@@ -16,8 +16,8 @@
  */
 package org.apache.tika.parser.image;
 
-import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TIFF;
+import org.apache.tika.metadata.TikaCoreProperties;
 
 import junit.framework.TestCase;
 
@@ -26,7 +26,7 @@ public class MetadataFieldsTest extends 
     public void testIsMetadataField() {
         assertFalse(MetadataFields.isMetadataField("random string that is not a field"));
         assertFalse(MetadataFields.isMetadataField("xyz"));
-        assertTrue(MetadataFields.isMetadataField(Metadata.SUBJECT));
+        assertTrue(MetadataFields.isMetadataField(TikaCoreProperties.SUBJECT));
         assertTrue(MetadataFields.isMetadataField(TIFF.F_NUMBER.getName()));
     }
 

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/TiffParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/TiffParserTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/TiffParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/TiffParserTest.java Thu May 17 20:05:20 2012
@@ -22,6 +22,7 @@ import org.apache.tika.parser.ParseConte
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.image.TiffParser;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.xml.sax.helpers.DefaultHandler;
 
 import java.io.InputStream;
@@ -41,7 +42,7 @@ public class TiffParserTest extends Test
         assertEquals("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.", metadata.get(Metadata.DESCRIPTION));
+        		"copyright ownership.", metadata.get(TikaCoreProperties.DESCRIPTION));
         
         // All EXIF/TIFF tags
         assertEquals("Inch", metadata.get(Metadata.RESOLUTION_UNIT));
@@ -53,7 +54,7 @@ public class TiffParserTest extends Test
         assertEquals("3", metadata.get(Metadata.SAMPLES_PER_PIXEL));
         
         // Embedded XMP
-        List<String> subject = Arrays.asList(metadata.getValues(Metadata.SUBJECT));
+        List<String> subject = Arrays.asList(metadata.getValues(TikaCoreProperties.SUBJECT));
         assertTrue("got " + subject, subject.contains("cat"));
         assertTrue("got " + subject, subject.contains("garden"));
     }

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/xmp/JempboxExtractorTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/xmp/JempboxExtractorTest.java?rev=1339833&r1=1339832&r2=1339833&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/xmp/JempboxExtractorTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/image/xmp/JempboxExtractorTest.java Thu May 17 20:05:20 2012
@@ -23,6 +23,7 @@ import java.util.Collection;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.image.xmp.JempboxExtractor;
 
 import junit.framework.TestCase;
@@ -33,20 +34,20 @@ public class JempboxExtractorTest extend
         Metadata metadata = new Metadata();
         InputStream stream = getClass().getResourceAsStream("/test-documents/testJPEG_commented.jpg");
         // set some values before extraction to see that they are overridden
-        metadata.set(Metadata.TITLE, "old title");
-        metadata.set(Metadata.DESCRIPTION, "old description");
-        metadata.set(Metadata.CREATOR, "previous author");
+        metadata.set(TikaCoreProperties.TITLE, "old title");
+        metadata.set(TikaCoreProperties.DESCRIPTION, "old description");
+        metadata.set(TikaCoreProperties.CREATOR, "previous author");
         // ... or kept in case the field is multi-value
-        metadata.add(Metadata.SUBJECT, "oldkeyword");
+        metadata.add(TikaCoreProperties.SUBJECT, "oldkeyword");
         
         JempboxExtractor extractor = new JempboxExtractor(metadata);
         extractor.parse(stream);
         
         // DublinCore fields
-        assertEquals("Tosteberga \u00C4ngar", metadata.get(Metadata.TITLE));
-        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(Metadata.DESCRIPTION));
-        assertEquals("Some Tourist", metadata.get(Metadata.CREATOR));
-        Collection<String> keywords = Arrays.asList(metadata.getValues(Metadata.SUBJECT));  
+        assertEquals("Tosteberga \u00C4ngar", metadata.get(TikaCoreProperties.TITLE));
+        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(TikaCoreProperties.DESCRIPTION));
+        assertEquals("Some Tourist", metadata.get(TikaCoreProperties.CREATOR));
+        Collection<String> keywords = Arrays.asList(metadata.getValues(TikaCoreProperties.SUBJECT));  
         assertTrue(keywords.contains("oldkeyword"));
         assertTrue(keywords.contains("grazelands"));
         assertTrue(keywords.contains("nature reserve"));
@@ -62,10 +63,10 @@ public class JempboxExtractorTest extend
         extractor.parse(stream);
         
         // DublinCore fields
-        assertEquals("Tosteberga \u00C4ngar", metadata.get(Metadata.TITLE));
-        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(Metadata.DESCRIPTION));
-        assertEquals("Some Tourist", metadata.get(Metadata.CREATOR));
-        Collection<String> keywords = Arrays.asList(metadata.getValues(Metadata.SUBJECT));  
+        assertEquals("Tosteberga \u00C4ngar", metadata.get(TikaCoreProperties.TITLE));
+        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(TikaCoreProperties.DESCRIPTION));
+        assertEquals("Some Tourist", metadata.get(TikaCoreProperties.CREATOR));
+        Collection<String> keywords = Arrays.asList(metadata.getValues(TikaCoreProperties.SUBJECT));  
         assertTrue(keywords.contains("bird watching"));
         assertTrue(keywords.contains("coast"));
     }
@@ -78,8 +79,8 @@ public class JempboxExtractorTest extend
         extractor.parse(stream);
         
         // XnViewMp fields not understood by Jempbox
-        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(Metadata.DESCRIPTION));
-        Collection<String> keywords = Arrays.asList(metadata.getValues(Metadata.SUBJECT));
+        assertEquals("Bird site in north eastern Sk\u00E5ne, Sweden.\n(new line)", metadata.get(TikaCoreProperties.DESCRIPTION));
+        Collection<String> keywords = Arrays.asList(metadata.getValues(TikaCoreProperties.SUBJECT));
         assertTrue(keywords.contains("coast"));
         assertTrue(keywords.contains("nature reserve"));
     }