Index: lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java	(working copy)
@@ -69,12 +69,12 @@
     );
     Document doc = new Document();
     // uses default codec:
-    doc.add(newField("field1", "this field uses the standard codec as the test", TextField.TYPE_UNSTORED));
+    doc.add(newField("field1", "this field uses the standard codec as the test", TextField.TYPE));
     // uses pulsing codec:
-    Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE_UNSTORED);
+    Field field2 = newField("field2", "this field uses the pulsing codec as the test", TextField.TYPE);
     doc.add(field2);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
 
     doc.add(idField);
     for(int i=0;i<NUM_DOCS;i++) {
Index: lucene/core/src/test/org/apache/lucene/TestSearch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestSearch.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/TestSearch.java	(working copy)
@@ -86,8 +86,9 @@
       };
       for (int j = 0; j < docs.length; j++) {
         Document d = new Document();
-        d.add(newField("contents", docs[j], TextField.TYPE_STORED));
-        d.add(newField("id", ""+j, StringField.TYPE_UNSTORED));
+        d.add(newField("contents", docs[j], TextField.TYPE));
+        d.add(newField("contents", docs[j], StoredField.TYPE));
+        d.add(newField("id", ""+j, StringField.TYPE));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java	(working copy)
@@ -20,18 +20,19 @@
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 /**
  * JUnit testcase to test RAMDirectory. RAMDirectory itself is used in many testcases,
@@ -57,7 +58,8 @@
     Document doc = null;
     for (int i = 0; i < docsToAdd; i++) {
       doc = new Document();
-      doc.add(newField("content", English.intToEnglish(i).trim(), StringField.TYPE_STORED));
+      doc.add(newField("content", English.intToEnglish(i).trim(), StringField.TYPE));
+      doc.add(newField("content", English.intToEnglish(i).trim(), StoredField.TYPE));
       writer.addDocument(doc);
     }
     assertEquals(docsToAdd, writer.maxDoc());
@@ -116,7 +118,8 @@
         public void run() {
           for (int j=1; j<docsPerThread; j++) {
             Document doc = new Document();
-            doc.add(newField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), StringField.TYPE_STORED));
+            doc.add(newField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), StringField.TYPE));
+            doc.add(newField("sizeContent", English.intToEnglish(num*docsPerThread+j).trim(), StoredField.TYPE));
             try {
               writer.addDocument(doc);
             } catch (IOException e) {
Index: lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -154,15 +155,22 @@
     MockDirectoryWrapper dir = new MockDirectoryWrapper(random, mmapDir);
     RandomIndexWriter writer = new RandomIndexWriter(random, dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    Field docid = newField("docid", "0", StringField.TYPE_STORED);
-    Field junk = newField("junk", "", StringField.TYPE_STORED);
+    Field docid = newField("docid", "0", StringField.TYPE);
+    Field storedDocID = newField("docid", "0", StoredField.TYPE);
+    Field junk = newField("junk", "", StringField.TYPE);
+    Field junkStored = newField("junk", "", StoredField.TYPE);
     doc.add(docid);
+    doc.add(storedDocID);
     doc.add(junk);
+    doc.add(junkStored);
     
     int numDocs = 100;
     for (int i = 0; i < numDocs; i++) {
       docid.setStringValue("" + i);
-      junk.setStringValue(_TestUtil.randomUnicodeString(random));
+      storedDocID.setStringValue("" + i);
+      final String junkString = _TestUtil.randomUnicodeString(random);
+      junk.setStringValue(junkString);
+      junkStored.setStringValue(junkString);
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java	(working copy)
@@ -19,18 +19,18 @@
 
 import java.io.File;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util._TestUtil;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 public class TestWindowsMMap extends LuceneTestCase {
   
@@ -84,7 +84,8 @@
     for(int dx = 0; dx < num; dx ++) {
       String f = randomField();
       Document doc = new Document();
-      doc.add(newField("data", f, TextField.TYPE_STORED));	
+      doc.add(newField("data", f, TextField.TYPE));
+      doc.add(newField("data", f, StoredField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java	(working copy)
@@ -421,7 +421,7 @@
 
     private void addDoc(IndexWriter writer) throws IOException {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa", TextField.TYPE));
         writer.addDocument(doc);
     }
 }
Index: lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java	(working copy)
@@ -28,21 +28,22 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.NIOFSDirectory.NIOFSIndexInput;
 import org.apache.lucene.store.SimpleFSDirectory.SimpleFSIndexInput;
+import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.ArrayUtil;
 
 public class TestBufferedIndexInput extends LuceneTestCase {
   
@@ -253,8 +254,10 @@
         );
         for(int i=0;i<37;i++) {
           Document doc = new Document();
-          doc.add(newField("content", "aaa bbb ccc ddd" + i, TextField.TYPE_STORED));
-          doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+          doc.add(newField("content", "aaa bbb ccc ddd" + i, TextField.TYPE));
+          doc.add(newField("content", "aaa bbb ccc ddd" + i, StoredField.TYPE));
+          doc.add(newField("id", "" + i, TextField.TYPE));
+          doc.add(newField("id", "" + i, StoredField.TYPE));
           writer.addDocument(doc);
         }
 
Index: lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java	(working copy)
@@ -60,7 +60,8 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     
     Document document = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     
     switch(_TestUtil.nextInt(random(), 0, 2)) {
       case 0: ft.setIndexOptions(IndexOptions.DOCS_ONLY); break;
@@ -111,7 +112,8 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     
     Document document = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     
     switch(_TestUtil.nextInt(random(), 0, 2)) {
       case 0: ft.setIndexOptions(IndexOptions.DOCS_ONLY); break;
Index: lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/pulsing/TestPulsingReuse.java	(working copy)
@@ -51,7 +51,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, 
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     Document doc = new Document();
-    doc.add(new Field("foo", "a b b c c c d e f g g h i i j j k", TextField.TYPE_UNSTORED));
+    doc.add(new Field("foo", "a b b c c c d e f g g h i i j j k", TextField.TYPE));
     iw.addDocument(doc);
     DirectoryReader ir = iw.getReader();
     iw.close();
@@ -90,7 +90,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, 
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(cp));
     Document doc = new Document();
-    doc.add(new Field("foo", "a b b c c c d e f g g g h i i j j k l l m m m", TextField.TYPE_UNSTORED));
+    doc.add(new Field("foo", "a b b c c c d e f g g g h i i j j k l l m m m", TextField.TYPE));
     // note: the reuse is imperfect, here we would have 4 enums (lost reuse when we get an enum for 'm')
     // this is because we only track the 'last' enum we reused (not all).
     // but this seems 'good enough' for now.
Index: lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/appending/TestAppendingCodec.java	(working copy)
@@ -116,7 +116,8 @@
     ((TieredMergePolicy)cfg.getMergePolicy()).setUseCompoundFile(false);
     IndexWriter writer = new IndexWriter(dir, cfg);
     Document doc = new Document();
-    FieldType storedTextType = new FieldType(TextField.TYPE_STORED);
+    FieldType storedTextType = new FieldType(TextField.TYPE);
+    storedTextType.setStored(true);
     storedTextType.setStoreTermVectors(true);
     storedTextType.setStoreTermVectorPositions(true);
     storedTextType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestSurrogates.java	(working copy)
@@ -311,7 +311,7 @@
         uniqueTerms.add(term);
         fieldTerms.add(new Term(field, term));
         Document doc = new Document();
-        doc.add(newField(field, term, StringField.TYPE_UNSTORED));
+        doc.add(newField(field, term, StringField.TYPE));
         w.addDocument(doc);
       }
       uniqueTermCount += uniqueTerms.size();
Index: lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java	(working copy)
@@ -194,7 +194,7 @@
     for (int i = 0; i < NUMBER_OF_DOCUMENTS; i++) {
       Document document = new Document();
       for (int f = 0; f < NUMBER_OF_FIELDS; f++) {
-        document.add(newField("field" + f, getText(), StringField.TYPE_UNSTORED));
+        document.add(newField("field" + f, getText(), StringField.TYPE));
       }
       writer.addDocument(document);
     }
Index: lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat.java	(working copy)
@@ -29,17 +29,18 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.LogDocMergePolicy;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
@@ -71,7 +72,7 @@
   private void addDocs(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -79,7 +80,7 @@
   private void addDocs2(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "bbb", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "bbb", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -87,8 +88,9 @@
   private void addDocs3(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "ccc", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + i, StringField.TYPE_STORED));
+      doc.add(newField("content", "ccc", TextField.TYPE));
+      doc.add(newField("id", "" + i, StringField.TYPE));
+      doc.add(newField("id", "" + i, StoredField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -250,7 +252,7 @@
       for (int j = 0; j < docsPerRound; j++) {
         final Document doc = new Document();
         for (int k = 0; k < num; k++) {
-          FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+          FieldType customType = new FieldType(TextField.TYPE);
           customType.setTokenized(random().nextBoolean());
           customType.setOmitNorms(random().nextBoolean());
           Field field = newField("" + k, _TestUtil
@@ -307,7 +309,7 @@
     iwc.setCodec(codec);
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     // turn on vectors for the checkindex cross-check
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/TestDemo.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestDemo.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/TestDemo.java	(working copy)
@@ -22,11 +22,12 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -50,7 +51,8 @@
     Document doc = new Document();
     String longTerm = "longtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongterm";
     String text = "This is the text to be indexed. " + longTerm;
-    doc.add(newField("fieldname", text, TextField.TYPE_STORED));
+    doc.add(newField("fieldname", text, TextField.TYPE));
+    doc.add(newField("fieldname", text, StoredField.TYPE));
     iwriter.addDocument(doc);
     iwriter.close();
     
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixInBooleanQuery.java	(working copy)
@@ -52,7 +52,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
 
     Document doc = new Document();
-    Field field = newField(FIELD, "meaninglessnames", StringField.TYPE_UNSTORED);
+    Field field = newField(FIELD, "meaninglessnames", StringField.TYPE);
     doc.add(field);
     
     for (int i = 0; i < 5137; ++i) {
Index: lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocBoost.java	(working copy)
@@ -38,8 +38,10 @@
     Directory store = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), store, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
 
-    Field f1 = newField("field", "word", TextField.TYPE_STORED);
-    Field f2 = newField("field", "word", TextField.TYPE_STORED);
+    FieldType storedTextType = new FieldType(TextField.TYPE);
+    storedTextType.setStored(true);
+    Field f1 = newField("field", "word", storedTextType);
+    Field f2 = newField("field", "word", storedTextType);
     f2.setBoost(2.0f);
 
     Document d1 = new Document();
Index: lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java	(working copy)
@@ -17,18 +17,20 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.search.FieldValueHitQueue.Entry;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.*;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
 
 public class TestElevationComparator extends LuceneTestCase {
 
@@ -125,7 +127,8 @@
  private Document adoc(String[] vals) {
    Document doc = new Document();
    for (int i = 0; i < vals.length - 2; i += 2) {
-     doc.add(newField(vals[i], vals[i + 1], TextField.TYPE_STORED));
+     doc.add(newField(vals[i], vals[i + 1], TextField.TYPE));
+     doc.add(newField(vals[i], vals[i + 1], StoredField.TYPE));
    }
    return doc;
  }
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheTermsFilter.java	(working copy)
@@ -17,17 +17,17 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * A basic unit test for FieldCacheTermsFilter
  *
@@ -41,7 +41,8 @@
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
       int term = i * 10; //terms are units of 10;
-      doc.add(newField(fieldName, "" + term, StringField.TYPE_STORED));
+      doc.add(newField(fieldName, "" + term, StringField.TYPE));
+      doc.add(newField(fieldName, "" + term, StoredField.TYPE));
       w.addDocument(doc);
     }
     IndexReader reader = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestTimeLimitingCollector.java	(working copy)
@@ -116,7 +116,7 @@
 
   private void add(String value, RandomIndexWriter iw) throws IOException {
     Document d = new Document();
-    d.add(newField(FIELD_NAME, value, TextField.TYPE_UNSTORED));
+    d.add(newField(FIELD_NAME, value, TextField.TYPE));
     iw.addDocument(d);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixFilter.java	(working copy)
@@ -17,13 +17,14 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.store.Directory;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Tests {@link PrefixFilter} class.
@@ -40,7 +41,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < categories.length; i++) {
       Document doc = new Document();
-      doc.add(newField("category", categories[i], StringField.TYPE_STORED));
+      doc.add(newField("category", categories[i], StringField.TYPE));
+      doc.add(newField("category", categories[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
@@ -178,7 +179,8 @@
 
     // add a doc, refresh the reader, and check that it's there
     Document doc = new Document();
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("id", "1", StringField.TYPE));
+    doc.add(newField("id", "1", StoredField.TYPE));
     writer.addDocument(doc);
 
     reader = refreshReader(reader);
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestAutomatonQueryUnicode.java	(working copy)
@@ -48,9 +48,9 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field titleField = newField("title", "some title", TextField.TYPE_UNSTORED);
-    Field field = newField(FN, "", TextField.TYPE_UNSTORED);
-    Field footerField = newField("footer", "a footer", TextField.TYPE_UNSTORED);
+    Field titleField = newField("title", "some title", TextField.TYPE);
+    Field field = newField(FN, "", TextField.TYPE);
+    Field footerField = newField("footer", "a footer", TextField.TYPE);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java	(working copy)
@@ -73,7 +73,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field", "a b c d", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d", TextField.TYPE));
     w.addDocument(doc);
 
     IndexReader r = w.getReader();
@@ -137,7 +137,7 @@
     Directory dir1 = newDirectory();
     RandomIndexWriter iw1 = new RandomIndexWriter(random(), dir1);
     Document doc1 = new Document();
-    doc1.add(newField("field", "foo bar", TextField.TYPE_UNSTORED));
+    doc1.add(newField("field", "foo bar", TextField.TYPE));
     iw1.addDocument(doc1);
     IndexReader reader1 = iw1.getReader();
     iw1.close();
@@ -145,7 +145,7 @@
     Directory dir2 = newDirectory();
     RandomIndexWriter iw2 = new RandomIndexWriter(random(), dir2);
     Document doc2 = new Document();
-    doc2.add(newField("field", "foo baz", TextField.TYPE_UNSTORED));
+    doc2.add(newField("field", "foo baz", TextField.TYPE));
     iw2.addDocument(doc2);
     IndexReader reader2 = iw2.getReader();
     iw2.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSort.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSort.java	(working copy)
@@ -39,6 +39,7 @@
 import org.apache.lucene.document.FloatDocValuesField;
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
@@ -1274,12 +1275,12 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
                         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("f", "", StringField.TYPE_UNSTORED));
-    doc.add(newField("t", "1", StringField.TYPE_UNSTORED));
+    doc.add(newField("f", "", StringField.TYPE));
+    doc.add(newField("t", "1", StringField.TYPE));
     w.addDocument(doc);
     w.commit();
     doc = new Document();
-    doc.add(newField("t", "1", StringField.TYPE_UNSTORED));
+    doc.add(newField("t", "1", StringField.TYPE));
     w.addDocument(doc);
 
     IndexReader r = DirectoryReader.open(w, true);
@@ -1408,7 +1409,7 @@
       
       final Document doc = new Document();
       doc.add(new SortedBytesDocValuesField("stringdv", br));
-      doc.add(newField("string", s, StringField.TYPE_UNSTORED));
+      doc.add(newField("string", s, StringField.TYPE));
       doc.add(new PackedLongDocValuesField("id", numDocs));
       docValues.add(br);
       writer.addDocument(doc);
@@ -1497,13 +1498,14 @@
     for(int seg=0;seg<2;seg++) {
       for(int docIDX=0;docIDX<10;docIDX++) {
         Document doc = new Document();
-        doc.add(newField("id", ""+docIDX, StringField.TYPE_STORED));
+        doc.add(newField("id", ""+docIDX, StringField.TYPE));
+        doc.add(newField("id", ""+docIDX, StoredField.TYPE));
         StringBuilder sb = new StringBuilder();
         for(int i=0;i<id;i++) {
           sb.append(' ');
           sb.append("text");
         }
-        doc.add(newField("body", sb.toString(), TextField.TYPE_UNSTORED));
+        doc.add(newField("body", sb.toString(), TextField.TYPE));
         w.addDocument(doc);
         id++;
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestWildcardRandom.java	(working copy)
@@ -52,7 +52,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
     
     NumberFormat df = new DecimalFormat("000", new DecimalFormatSymbols(Locale.ENGLISH));
Index: lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java	(working copy)
@@ -21,6 +21,7 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
@@ -30,15 +31,15 @@
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.CollectionStatistics;
 import org.apache.lucene.search.Explanation;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.QueryUtils;
 import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermStatistics;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanQuery;
-import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
@@ -115,9 +116,11 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("field", English.intToEnglish(i), StoredField.TYPE));
       String txt = English.intToEnglish(i) +' '+English.intToEnglish(i+1);
-      doc.add(newField("field2",  txt, TextField.TYPE_STORED));
+      doc.add(newField("field2",  txt, TextField.TYPE));
+      doc.add(newField("field2",  txt, StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java	(working copy)
@@ -16,41 +16,42 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.Reader;
+
 import org.apache.lucene.analysis.*;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.English;
+import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.FieldInvertState;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Norm;
+import org.apache.lucene.index.Payload;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.CheckHits;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.QueryUtils;
+import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.CheckHits;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.search.spans.MultiSpansWrapper;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.search.spans.Spans;
-import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Norm;
-import org.apache.lucene.index.Payload;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.apache.lucene.document.TextField;
 
-import java.io.Reader;
-import java.io.IOException;
 
-
 /**
  *
  *
@@ -125,11 +126,14 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      Field noPayloadField = newField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE_STORED);
+      Field noPayloadField = newField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE);
       //noPayloadField.setBoost(0);
       doc.add(noPayloadField);
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(newField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField(PayloadHelper.NO_PAYLOAD_FIELD, English.intToEnglish(i), StoredField.TYPE));
+      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("field", English.intToEnglish(i), StoredField.TYPE));
+      doc.add(newField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("multiField", English.intToEnglish(i) + "  " + English.intToEnglish(i), StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/payloads/PayloadHelper.java	(working copy)
@@ -17,30 +17,31 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.Reader;
+import java.util.Random;
+
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Payload;
-import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.util.English;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.Payload;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.English;
+import org.apache.lucene.util.LuceneTestCase;
 
 import static org.apache.lucene.util.LuceneTestCase.TEST_VERSION_CURRENT;
 
-import java.io.Reader;
-import java.io.IOException;
-import java.util.Random;
-
 /**
  *
  *
@@ -126,9 +127,12 @@
     // writer.infoStream = System.out;
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(new Field(FIELD, English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(new Field(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(new Field(NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(new Field(FIELD, English.intToEnglish(i), TextField.TYPE));
+      doc.add(new Field(FIELD, English.intToEnglish(i), StoredField.TYPE));
+      doc.add(new Field(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i), TextField.TYPE));
+      doc.add(new Field(MULTI_FIELD, English.intToEnglish(i) + "  " + English.intToEnglish(i), StoredField.TYPE));
+      doc.add(new Field(NO_PAYLOAD_FIELD, English.intToEnglish(i), TextField.TYPE));
+      doc.add(new Field(NO_PAYLOAD_FIELD, English.intToEnglish(i), StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = DirectoryReader.open(writer, true);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java	(working copy)
@@ -53,7 +53,7 @@
 
     for (int i = 0; i < 10; i++) {
       Document doc = new Document();
-      doc.add(newField("data", Integer.toString(i), StringField.TYPE_UNSTORED));
+      doc.add(newField("data", Integer.toString(i), StringField.TYPE));
       writer.addDocument(doc);
       ((i % 2 == 0) ? swriter1 : swriter2).addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java	(working copy)
@@ -51,11 +51,11 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    Field field = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field field = newField("foo", "", TextField.TYPE);
     doc.add(field);
     Field dvField = new FloatDocValuesField("foo_boost", 0.0f);
     doc.add(dvField);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestQueryWrapperFilter.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
@@ -37,7 +38,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field", "value", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "value", TextField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -100,9 +101,10 @@
       } else {
         v = "b";
       }
-      final Field f = newField("field", v, StringField.TYPE_UNSTORED);
+      final Field f = newField("field", v, StringField.TYPE);
       doc.add(f);
-      doc.add(newField("id", ""+i, StringField.TYPE_STORED));
+      doc.add(newField("id", ""+i, StringField.TYPE));
+      doc.add(newField("id", ""+i, StoredField.TYPE));
       w.addDocument(doc);
     }
 
@@ -131,7 +133,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), StringField.TYPE_UNSTORED));
+      doc.add(newField("field", English.intToEnglish(i), StringField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -51,7 +52,8 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(TextField.TYPE);
+      ft.setStored(true);
       int mod3 = i % 3;
       int mod2 = i % 2;
       if (mod2 == 0 && mod3 == 0) {
@@ -69,7 +71,8 @@
       }
       doc.add(new Field("field", English.intToEnglish(i), ft));
       //test no term vectors too
-      doc.add(new Field("noTV", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(new Field("noTV", English.intToEnglish(i), TextField.TYPE));
+      doc.add(new Field("noTV", English.intToEnglish(i), StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -109,7 +112,8 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
@@ -320,11 +324,13 @@
   
   private void setupDoc(Document doc, String text)
   {
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
-    FieldType ft2 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft2 = new FieldType(TextField.TYPE);
+    ft2.setStored(true);
     ft2.setStoreTermVectors(true);
     doc.add(newField("field2", text, ft));
     doc.add(newField("field", text, ft2));
@@ -341,13 +347,15 @@
     }
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("field", English.intToEnglish(i), StoredField.TYPE));
       writer.addDocument(doc);
     }
     if (VERBOSE) {
       System.out.println("TEST: now add vectors");
     }
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
@@ -385,23 +393,28 @@
         new MockAnalyzer(random(), MockTokenizer.SIMPLE, true)).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
     
-    FieldType ft2 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft2 = new FieldType(TextField.TYPE);
+    ft2.setStored(true);
     ft2.setStoreTermVectors(true);
     
-    FieldType ft3 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft3 = new FieldType(TextField.TYPE);
+    ft3.setStored(true);
     ft3.setStoreTermVectors(true);
     ft3.setStoreTermVectorPositions(true);
     
-    FieldType ft4 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft4 = new FieldType(TextField.TYPE);
+    ft4.setStored(true);
     ft4.setStoreTermVectors(true);
     ft4.setStoreTermVectorOffsets(true);
     
-    FieldType ft5 = new FieldType(TextField.TYPE_STORED);
+    FieldType ft5 = new FieldType(TextField.TYPE);
+    ft5.setStored(true);
     ft5.setStoreTermVectors(true);
     ft5.setStoreTermVectorOffsets(true);
     ft5.setStoreTermVectorPositions(true);
     
-    doc.add(newField("field", "one", TextField.TYPE_STORED));
+    doc.add(newField("field", "one", TextField.TYPE));
+    doc.add(newField("field", "one", StoredField.TYPE));
     doc.add(newField("field", "one", ft2));
     doc.add(newField("field", "one", ft3));
     doc.add(newField("field", "one", ft4));
@@ -459,7 +472,8 @@
 
   private Document createDoc() {
     Document doc = new Document();
-    final FieldType ft = new FieldType(TextField.TYPE_STORED);
+    final FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiValuedNumericRangeQuery.java	(working copy)
@@ -51,7 +51,7 @@
       Document doc = new Document();
       for (int m=0, c=random().nextInt(10); m<=c; m++) {
         int value = random().nextInt(Integer.MAX_VALUE);
-        doc.add(newField("asc", format.format(value), StringField.TYPE_UNSTORED));
+        doc.add(newField("asc", format.format(value), StringField.TYPE));
         doc.add(new IntField("trie", value));
       }
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java	(working copy)
@@ -23,6 +23,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -53,8 +54,8 @@
         .setSimilarity(new DefaultSimilarity()));
     for (int i = 0; i < values.length; i++) {
       Document doc = new Document();
-      doc
-          .add(newField(FIELD, values[i], TextField.TYPE_STORED));
+      doc.add(newField(FIELD, values[i], TextField.TYPE));
+      doc.add(newField(FIELD, values[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     indexReader = SlowCompositeReaderWrapper.wrap(writer.getReader());
Index: lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPhrasePrefixQuery.java	(working copy)
@@ -17,20 +17,21 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.util.LinkedList;
+
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.LinkedList;
-
 /**
  * This class tests PhrasePrefixQuery class.
  */
@@ -47,11 +48,16 @@
     Document doc3 = new Document();
     Document doc4 = new Document();
     Document doc5 = new Document();
-    doc1.add(newField("body", "blueberry pie", TextField.TYPE_STORED));
-    doc2.add(newField("body", "blueberry strudel", TextField.TYPE_STORED));
-    doc3.add(newField("body", "blueberry pizza", TextField.TYPE_STORED));
-    doc4.add(newField("body", "blueberry chewing gum", TextField.TYPE_STORED));
-    doc5.add(newField("body", "piccadilly circus", TextField.TYPE_STORED));
+    doc1.add(newField("body", "blueberry pie", TextField.TYPE));
+    doc1.add(newField("body", "blueberry pie", StoredField.TYPE));
+    doc2.add(newField("body", "blueberry strudel", TextField.TYPE));
+    doc2.add(newField("body", "blueberry strudel", StoredField.TYPE));
+    doc3.add(newField("body", "blueberry pizza", TextField.TYPE));
+    doc3.add(newField("body", "blueberry pizza", StoredField.TYPE));
+    doc4.add(newField("body", "blueberry chewing gum", TextField.TYPE));
+    doc4.add(newField("body", "blueberry chewing gum", StoredField.TYPE));
+    doc5.add(newField("body", "piccadilly circus", TextField.TYPE));
+    doc5.add(newField("body", "piccadilly circus", StoredField.TYPE));
     writer.addDocument(doc1);
     writer.addDocument(doc2);
     writer.addDocument(doc3);
Index: lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestAutomatonQuery.java	(working copy)
@@ -48,9 +48,9 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field titleField = newField("title", "some title", TextField.TYPE_UNSTORED);
-    Field field = newField(FN, "this is document one 2345", TextField.TYPE_UNSTORED);
-    Field footerField = newField("footer", "a footer", TextField.TYPE_UNSTORED);
+    Field titleField = newField("title", "some title", TextField.TYPE);
+    Field field = newField(FN, "this is document one 2345", TextField.TYPE);
+    Field footerField = newField("footer", "a footer", TextField.TYPE);
     doc.add(titleField);
     doc.add(field);
     doc.add(footerField);
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCache.java	(working copy)
@@ -30,6 +30,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.*;
 import org.apache.lucene.store.Directory;
@@ -67,14 +68,14 @@
     }
     for (int i = 0; i < NUM_DOCS; i++){
       Document doc = new Document();
-      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE_UNSTORED));
+      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE));
+      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE));
+      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE));
+      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE));
+      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE));
+      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE));
       if (i%2 == 0) {
-        doc.add(newField("sparse", String.valueOf(i), StringField.TYPE_UNSTORED));
+        doc.add(newField("sparse", String.valueOf(i), StringField.TYPE));
       }
 
       if (i%2 == 0) {
@@ -84,7 +85,8 @@
       // sometimes skip the field:
       if (random().nextInt(40) != 17) {
         unicodeStrings[i] = generateString(i);
-        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StringField.TYPE_STORED));
+        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StringField.TYPE));
+        doc.add(newField("theRandomUnicodeString", unicodeStrings[i], StoredField.TYPE));
       }
 
       // sometimes skip the field:
@@ -92,7 +94,8 @@
         for (int j = 0; j < NUM_ORDS; j++) {
           String newValue = generateString(i);
           multiValued[i][j] = new BytesRef(newValue);
-          doc.add(newField("theRandomUnicodeMultiValuedField", newValue, StringField.TYPE_STORED));
+          doc.add(newField("theRandomUnicodeMultiValuedField", newValue, StringField.TYPE));
+          doc.add(newField("theRandomUnicodeMultiValuedField", newValue, StoredField.TYPE));
         }
         Arrays.sort(multiValued[i]);
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestConstantScoreQuery.java	(working copy)
@@ -90,7 +90,7 @@
       RandomIndexWriter writer = new RandomIndexWriter (random(), directory);
 
       Document doc = new Document();
-      doc.add(newField("field", "term", StringField.TYPE_UNSTORED));
+      doc.add(newField("field", "term", StringField.TYPE));
       writer.addDocument(doc);
 
       reader = writer.getReader();
@@ -134,10 +134,10 @@
     Directory d = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(newField("field", "a", StringField.TYPE_UNSTORED));
+    doc.add(newField("field", "a", StringField.TYPE));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "b", StringField.TYPE_UNSTORED));
+    doc.add(newField("field", "b", StringField.TYPE));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom2.java	(working copy)
@@ -66,7 +66,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.KEYWORD, false))
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    Field field = newField(fieldName, "", StringField.TYPE_UNSTORED);
+    Field field = newField(fieldName, "", StringField.TYPE);
     doc.add(field);
     List<String> terms = new ArrayList<String>();
     int num = atLeast(200);
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java	(working copy)
@@ -44,7 +44,8 @@
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     //writer.setUseCompoundFile(false);
     //writer.infoStream = System.out;
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
     customType.setStoreTermVectors(true);
     for (int i = 0; i < numDocs; i++) {
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredSearch.java	(working copy)
@@ -19,21 +19,22 @@
 
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase;
 
 
 
@@ -67,7 +68,8 @@
     try {
       for (int i = 0; i < 60; i++) {//Simple docs
         Document doc = new Document();
-        doc.add(newField(FIELD, Integer.toString(i), StringField.TYPE_STORED));
+        doc.add(newField(FIELD, Integer.toString(i), StringField.TYPE));
+        doc.add(newField(FIELD, Integer.toString(i), StoredField.TYPE));
         writer.addDocument(doc);
       }
       if (fullMerge) {
Index: lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java	(working copy)
@@ -17,25 +17,26 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.text.DecimalFormat;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Norm;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
-import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.text.DecimalFormat;
-import java.io.IOException;
-
 /**
  * Test of the DisjunctionMaxQuery.
  * 
@@ -81,8 +82,9 @@
   public IndexReader r;
   public IndexSearcher s;
   
-  private static final FieldType nonAnalyzedType = new FieldType(TextField.TYPE_STORED);
+  private static final FieldType nonAnalyzedType = new FieldType(TextField.TYPE);
   static {
+    nonAnalyzedType.setStored(true);
     nonAnalyzedType.setTokenized(false);
   }
   
@@ -102,10 +104,10 @@
       Document d1 = new Document();
       d1.add(newField("id", "d1", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d1"));
-      d1
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
-      d1
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+      d1.add(newField("hed", "elephant", TextField.TYPE));// Field.Text("hed", "elephant"));
+      d1.add(newField("hed", "elephant", StoredField.TYPE));// Field.Text("hed", "elephant"));
+      d1.add(newField("dek", "elephant", TextField.TYPE));// Field.Text("dek", "elephant"));
+      d1.add(newField("dek", "elephant", StoredField.TYPE));// Field.Text("dek", "elephant"));
       writer.addDocument(d1);
     }
     
@@ -114,12 +116,13 @@
       Document d2 = new Document();
       d2.add(newField("id", "d2", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d2"));
-      d2
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
-      d2.add(newField("dek", "albino", TextField.TYPE_STORED));// Field.Text("dek",
+      d2.add(newField("hed", "elephant", TextField.TYPE));// Field.Text("hed", "elephant"));
+      d2.add(newField("hed", "elephant", StoredField.TYPE));// Field.Text("hed", "elephant"));
+      d2.add(newField("dek", "albino", TextField.TYPE));// Field.Text("dek",
+      d2.add(newField("dek", "albino", StoredField.TYPE));// Field.Text("dek",
                                                                                 // "albino"));
-      d2
-          .add(newField("dek", "elephant", TextField.TYPE_STORED));// Field.Text("dek", "elephant"));
+      d2.add(newField("dek", "elephant", TextField.TYPE));// Field.Text("dek", "elephant"));
+      d2.add(newField("dek", "elephant", StoredField.TYPE));// Field.Text("dek", "elephant"));
       writer.addDocument(d2);
     }
     
@@ -128,10 +131,11 @@
       Document d3 = new Document();
       d3.add(newField("id", "d3", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d3"));
-      d3.add(newField("hed", "albino", TextField.TYPE_STORED));// Field.Text("hed",
+      d3.add(newField("hed", "albino", TextField.TYPE));// Field.Text("hed",
+      d3.add(newField("hed", "albino", StoredField.TYPE));// Field.Text("hed",
                                                                                 // "albino"));
-      d3
-          .add(newField("hed", "elephant", TextField.TYPE_STORED));// Field.Text("hed", "elephant"));
+      d3.add(newField("hed", "elephant", TextField.TYPE));// Field.Text("hed", "elephant"));
+      d3.add(newField("hed", "elephant", StoredField.TYPE));// Field.Text("hed", "elephant"));
       writer.addDocument(d3);
     }
     
@@ -140,11 +144,12 @@
       Document d4 = new Document();
       d4.add(newField("id", "d4", nonAnalyzedType));// Field.Keyword("id",
                                                                                // "d4"));
-      d4.add(newField("hed", "albino", TextField.TYPE_STORED));// Field.Text("hed",
+      d4.add(newField("hed", "albino", TextField.TYPE));// Field.Text("hed",
+      d4.add(newField("hed", "albino", StoredField.TYPE));// Field.Text("hed",
                                                                                 // "albino"));
-      d4
-          .add(newField("hed", "elephant", nonAnalyzedType));// Field.Text("hed", "elephant"));
-      d4.add(newField("dek", "albino", TextField.TYPE_STORED));// Field.Text("dek",
+      d4.add(newField("hed", "elephant", nonAnalyzedType));// Field.Text("hed", "elephant"));
+      d4.add(newField("dek", "albino", TextField.TYPE));// Field.Text("dek",
+      d4.add(newField("dek", "albino", StoredField.TYPE));// Field.Text("dek",
                                                                                 // "albino"));
       writer.addDocument(d4);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java	(working copy)
@@ -64,17 +64,17 @@
     int numDocs = atLeast(200);
     for (int i = 0; i < numDocs; i++) {
       Document document = new Document();
-      document.add(newField("english", English.intToEnglish(i), TextField.TYPE_UNSTORED));
-      document.add(newField("oddeven", (i % 2 == 0) ? "even" : "odd", TextField.TYPE_UNSTORED));
-      document.add(newField("byte", "" + ((byte) random().nextInt()), StringField.TYPE_UNSTORED));
-      document.add(newField("short", "" + ((short) random().nextInt()), StringField.TYPE_UNSTORED));
+      document.add(newField("english", English.intToEnglish(i), TextField.TYPE));
+      document.add(newField("oddeven", (i % 2 == 0) ? "even" : "odd", TextField.TYPE));
+      document.add(newField("byte", "" + ((byte) random().nextInt()), StringField.TYPE));
+      document.add(newField("short", "" + ((short) random().nextInt()), StringField.TYPE));
       document.add(new IntField("int", random().nextInt()));
       document.add(new LongField("long", random().nextLong()));
 
       document.add(new FloatField("float", random().nextFloat()));
       document.add(new DoubleField("double", random().nextDouble()));
-      document.add(newField("bytes", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
-      document.add(newField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
+      document.add(newField("bytes", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
+      document.add(newField("bytesval", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
       document.add(new DoubleField("double", random().nextDouble()));
 
       if (supportsDocValues) {
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java	(working copy)
@@ -529,8 +529,8 @@
 
     for (int d = -20; d <= 20; d++) {
       Document doc = new Document();
-      doc.add(newField("id",Integer.toString(d), StringField.TYPE_UNSTORED));
-      doc.add(newField("body","body", StringField.TYPE_UNSTORED));
+      doc.add(newField("id",Integer.toString(d), StringField.TYPE));
+      doc.add(newField("body","body", StringField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpRandom.java	(working copy)
@@ -53,7 +53,8 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setOmitNorms(true);
     Field field = newField("field", "", customType);
     doc.add(field);
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixRandom.java	(working copy)
@@ -56,7 +56,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
 
     // we generate aweful prefixes: good for testing.
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -109,10 +110,12 @@
 
     for (int i = 0; i < docs.length; i++) {
       Document d = new Document();
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(TextField.TYPE);
+      ft.setStored(true);
       ft.setIndexed(false);
       d.add(newField(FIELD_ID, Integer.toString(i), ft));
-      d.add(newField(FIELD_BODY, docs[i], TextField.TYPE_STORED));
+      d.add(newField(FIELD_BODY, docs[i], TextField.TYPE));
+      d.add(newField(FIELD_BODY, docs[i], StoredField.TYPE));
       writer.addDocument(d);
     }
     
Index: lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java	(working copy)
@@ -99,7 +99,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -121,7 +121,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -143,7 +143,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     ft.freeze();
     doc.add(newField("foo", "bar", ft));
@@ -167,7 +167,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.freeze();
     Field f = newField("foo", "bar", ft);
@@ -192,7 +192,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.setOmitNorms(true);
     ft.freeze();
@@ -222,7 +222,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     doc.add(newField("foo", "bar", ft));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.CannedTokenStream;
 import org.apache.lucene.analysis.Token;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
@@ -197,7 +198,8 @@
   
   private void add(String s, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_STORED));
+    doc.add(newField("body", s, TextField.TYPE));
+    doc.add(newField("body", s, StoredField.TYPE));
     writer.addDocument(doc);
   }
   
@@ -317,8 +319,9 @@
   private void add(String s, String type, RandomIndexWriter writer)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_STORED));
-    doc.add(newField("type", type, StringField.TYPE_UNSTORED));
+    doc.add(newField("body", s, TextField.TYPE));
+    doc.add(newField("body", s, StoredField.TYPE));
+    doc.add(newField("type", type, StringField.TYPE));
     writer.addDocument(doc);
   }
   
Index: lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPrefixQuery.java	(working copy)
@@ -17,15 +17,16 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Tests {@link PrefixQuery} class.
@@ -41,7 +42,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < categories.length; i++) {
       Document doc = new Document();
-      doc.add(newField("category", categories[i], StringField.TYPE_STORED));
+      doc.add(newField("category", categories[i], StringField.TYPE));
+      doc.add(newField("category", categories[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -55,23 +56,31 @@
     RandomIndexWriter writer = new RandomIndexWriter (random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
 
     Document doc = new Document();
-    doc.add (newField("field", "one two three four five", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "b", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three four five", TextField.TYPE));
+    doc.add (newField("field", "one two three four five", StoredField.TYPE));
+    doc.add (newField("sorter", "b", TextField.TYPE));
+    doc.add (newField("sorter", "b", StoredField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two three four", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "d", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three four", TextField.TYPE));
+    doc.add (newField("field", "one two three four", StoredField.TYPE));
+    doc.add (newField("sorter", "d", TextField.TYPE));
+    doc.add (newField("sorter", "d", StoredField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two three y", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "a", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two three y", TextField.TYPE));
+    doc.add (newField("field", "one two three y", StoredField.TYPE));
+    doc.add (newField("sorter", "a", TextField.TYPE));
+    doc.add (newField("sorter", "a", StoredField.TYPE));
     writer.addDocument (doc);
 
     doc = new Document();
-    doc.add (newField("field", "one two x", TextField.TYPE_STORED));
-    doc.add (newField("sorter", "c", TextField.TYPE_STORED));
+    doc.add (newField("field", "one two x", TextField.TYPE));
+    doc.add (newField("field", "one two x", StoredField.TYPE));
+    doc.add (newField("sorter", "c", TextField.TYPE));
+    doc.add (newField("sorter", "c", StoredField.TYPE));
     writer.addDocument (doc);
 
     // tests here require single segment (eg try seed
Index: lucene/core/src/test/org/apache/lucene/search/TestNot.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNot.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestNot.java	(working copy)
@@ -17,14 +17,14 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.index.Term;
-import org.apache.lucene.util.LuceneTestCase;
-
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.util.LuceneTestCase;
 
 /** Similarity unit test.
  *
@@ -37,7 +37,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), store);
 
     Document d1 = new Document();
-    d1.add(newField("field", "a b", TextField.TYPE_STORED));
+    d1.add(newField("field", "a b", TextField.TYPE));
+    d1.add(newField("field", "a b", StoredField.TYPE));
 
     writer.addDocument(d1);
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java	(working copy)
@@ -72,19 +72,26 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory, analyzer);
     
     Document doc = new Document();
-    doc.add(newField("field", "one two three four five", TextField.TYPE_STORED));
-    doc.add(newField("repeated", "this is a repeated field - first part", TextField.TYPE_STORED));
-    IndexableField repeatedField = newField("repeated", "second part of a repeated field", TextField.TYPE_STORED);
+    doc.add(newField("field", "one two three four five", TextField.TYPE));
+    doc.add(newField("field", "one two three four five", StoredField.TYPE));
+    doc.add(newField("repeated", "this is a repeated field - first part", TextField.TYPE));
+    doc.add(newField("repeated", "this is a repeated field - first part", StoredField.TYPE));
+    IndexableField repeatedField = newField("repeated", "second part of a repeated field", TextField.TYPE);
+    IndexableField repeatedFieldStored = newField("repeated", "second part of a repeated field", StoredField.TYPE);
     doc.add(repeatedField);
-    doc.add(newField("palindrome", "one two three two one", TextField.TYPE_STORED));
+    doc.add(repeatedFieldStored);
+    doc.add(newField("palindrome", "one two three two one", TextField.TYPE));
+    doc.add(newField("palindrome", "one two three two one", StoredField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", StoredField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE_STORED));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", TextField.TYPE));
+    doc.add(newField("nonexist", "phrase exist notexist exist found", StoredField.TYPE));
     writer.addDocument(doc);
 
     reader = writer.getReader();
@@ -226,7 +233,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory, 
         newIndexWriterConfig( Version.LUCENE_40, stopAnalyzer));
     Document doc = new Document();
-    doc.add(newField("field", "the stop words are here", TextField.TYPE_STORED));
+    doc.add(newField("field", "the stop words are here", TextField.TYPE));
+    doc.add(newField("field", "the stop words are here", StoredField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -260,12 +268,15 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     
     Document doc = new Document();
-    doc.add(newField("source", "marketing info", TextField.TYPE_STORED));
+    doc.add(newField("source", "marketing info", TextField.TYPE));
+    doc.add(newField("source", "marketing info", StoredField.TYPE));
     writer.addDocument(doc);
     
     doc = new Document();
-    doc.add(newField("contents", "foobar", TextField.TYPE_STORED));
-    doc.add(newField("source", "marketing info", TextField.TYPE_STORED)); 
+    doc.add(newField("contents", "foobar", TextField.TYPE));
+    doc.add(newField("contents", "foobar", StoredField.TYPE));
+    doc.add(newField("source", "marketing info", TextField.TYPE)); 
+    doc.add(newField("source", "marketing info", StoredField.TYPE)); 
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
@@ -295,15 +306,18 @@
     writer = new RandomIndexWriter(random(), directory, 
         newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(OpenMode.CREATE));
     doc = new Document();
-    doc.add(newField("contents", "map entry woo", TextField.TYPE_STORED));
+    doc.add(newField("contents", "map entry woo", TextField.TYPE));
+    doc.add(newField("contents", "map entry woo", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "woo map entry", TextField.TYPE_STORED));
+    doc.add(newField("contents", "woo map entry", TextField.TYPE));
+    doc.add(newField("contents", "woo map entry", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("contents", "map foobarword entry woo", TextField.TYPE_STORED));
+    doc.add(newField("contents", "map foobarword entry woo", TextField.TYPE));
+    doc.add(newField("contents", "map foobarword entry woo", StoredField.TYPE));
     writer.addDocument(doc);
 
     reader = writer.getReader();
@@ -348,15 +362,18 @@
           .setSimilarity(new DefaultSimilarity()));
 
     Document doc = new Document();
-    doc.add(newField("field", "foo firstname lastname foo", TextField.TYPE_STORED));
+    doc.add(newField("field", "foo firstname lastname foo", TextField.TYPE));
+    doc.add(newField("field", "foo firstname lastname foo", StoredField.TYPE));
     writer.addDocument(doc);
     
     Document doc2 = new Document();
-    doc2.add(newField("field", "foo firstname zzz lastname foo", TextField.TYPE_STORED));
+    doc2.add(newField("field", "foo firstname zzz lastname foo", TextField.TYPE));
+    doc2.add(newField("field", "foo firstname zzz lastname foo", StoredField.TYPE));
     writer.addDocument(doc2);
     
     Document doc3 = new Document();
-    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", TextField.TYPE_STORED));
+    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", TextField.TYPE));
+    doc3.add(newField("field", "foo firstname zzz yyy lastname foo", StoredField.TYPE));
     writer.addDocument(doc3);
     
     IndexReader reader = writer.getReader();
@@ -611,7 +628,7 @@
     RandomIndexWriter w  = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).setMergePolicy(newLogMergePolicy()));
     List<List<String>> docs = new ArrayList<List<String>>();
     Document d = new Document();
-    Field f = newField("f", "", TextField.TYPE_UNSTORED);
+    Field f = newField("f", "", TextField.TYPE);
     d.add(f);
 
     Random r = random();
Index: lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestPositionIncrement.java	(working copy)
@@ -23,27 +23,28 @@
 import java.util.Collection;
 
 import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReader;
-import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.DocsAndPositionsEnum;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.search.payloads.PayloadSpanUtil;
 import org.apache.lucene.search.spans.MultiSpansWrapper;
 import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.search.spans.Spans;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
 
 /**
  * Term position unit test.
@@ -91,7 +92,8 @@
     Directory store = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), store, analyzer);
     Document d = new Document();
-    d.add(newField("field", "bogus", TextField.TYPE_STORED));
+    d.add(newField("field", "bogus", TextField.TYPE));
+    d.add(newField("field", "bogus", StoredField.TYPE));
     writer.addDocument(d);
     IndexReader reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestTermRangeQuery.java	(working copy)
@@ -24,14 +24,15 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -263,8 +264,9 @@
   private void insertDoc(IndexWriter writer, String content) throws IOException {
     Document doc = new Document();
 
-    doc.add(newField("id", "id" + docCount, StringField.TYPE_STORED));
-    doc.add(newField("content", content, TextField.TYPE_UNSTORED));
+    doc.add(newField("id", "id" + docCount, StringField.TYPE));
+    doc.add(newField("id", "id" + docCount, StoredField.TYPE));
+    doc.add(newField("content", content, TextField.TYPE));
 
     writer.addDocument(doc);
     docCount++;
Index: lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java	(working copy)
@@ -53,7 +53,7 @@
     // TODO: replace w/ the @nightly test data; make this
     // into an optional @nightly stress test
     final Document doc = new Document();
-    final Field body = newField("body", "", TextField.TYPE_UNSTORED);
+    final Field body = newField("body", "", TextField.TYPE);
     doc.add(body);
     final StringBuilder sb = new StringBuilder();
     for(int docCount=0;docCount<NUM_DOCS;docCount++) {
Index: lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java	(working copy)
@@ -159,7 +159,7 @@
 
   private static Document makeDocument(String docText) {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f = new Field("f", docText, customType);
     doc.add(f);
@@ -234,7 +234,7 @@
   public void testSlopWithHoles() throws Exception {  
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f = new Field("lyrics", "", customType);
     Document doc = new Document();
@@ -272,7 +272,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("lyrics", document, new FieldType(TextField.TYPE_UNSTORED)));
+    doc.add(newField("lyrics", document, new FieldType(TextField.TYPE)));
     iw.addDocument(doc);
     IndexReader ir = iw.getReader();
     iw.close();
@@ -325,7 +325,7 @@
 
      RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
      Document doc = new Document();
-     doc.add(newField("lyrics", document, new FieldType(TextField.TYPE_UNSTORED)));
+     doc.add(newField("lyrics", document, new FieldType(TextField.TYPE)));
      iw.addDocument(doc);
      IndexReader ir = iw.getReader();
      iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java	(working copy)
@@ -17,20 +17,21 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
+import java.text.DecimalFormat;
+import java.util.Random;
+
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
-import java.text.DecimalFormat;
-import java.util.Random;
-
 /** Test that BooleanQuery.setMinimumNumberShouldMatch works.
  */
 public class TestBooleanMinShouldMatch extends LuceneTestCase {
@@ -57,10 +58,13 @@
 
         for (int i = 0; i < data.length; i++) {
             Document doc = new Document();
-            doc.add(newField("id", String.valueOf(i), StringField.TYPE_STORED));//Field.Keyword("id",String.valueOf(i)));
-            doc.add(newField("all", "all", StringField.TYPE_STORED));//Field.Keyword("all","all"));
+            doc.add(newField("id", String.valueOf(i), StringField.TYPE));//Field.Keyword("id",String.valueOf(i)));
+            doc.add(newField("id", String.valueOf(i), StoredField.TYPE));//Field.Keyword("id",String.valueOf(i)));
+            doc.add(newField("all", "all", StringField.TYPE));//Field.Keyword("all","all"));
+            doc.add(newField("all", "all", StoredField.TYPE));//Field.Keyword("all","all"));
             if (null != data[i]) {
-                doc.add(newField("data", data[i], TextField.TYPE_STORED));//Field.Text("data",data[i]));
+                doc.add(newField("data", data[i], TextField.TYPE));//Field.Text("data",data[i]));
+                doc.add(newField("data", data[i], StoredField.TYPE));//Field.Text("data",data[i]));
             }
             w.addDocument(doc);
         }
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanOr.java	(working copy)
@@ -17,14 +17,14 @@
  */
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 public class TestBooleanOr extends LuceneTestCase {
 
@@ -139,13 +139,21 @@
     //
     Document d = new Document();
     d.add(newField(
-        FIELD_T,
-        "Optimize not deleting all files",
-        TextField.TYPE_STORED));
+                   FIELD_T,
+                   "Optimize not deleting all files",
+                   TextField.TYPE));
     d.add(newField(
-        FIELD_C,
-        "Deleted When I run an optimize in our production environment.",
-        TextField.TYPE_STORED));
+                   FIELD_T,
+                   "Optimize not deleting all files",
+                   StoredField.TYPE));
+    d.add(newField(
+                   FIELD_C,
+                   "Deleted When I run an optimize in our production environment.",
+                   TextField.TYPE));
+    d.add(newField(
+                   FIELD_C,
+                   "Deleted When I run an optimize in our production environment.",
+                   StoredField.TYPE));
 
     //
     writer.addDocument(d);
Index: lucene/core/src/test/org/apache/lucene/search/TestDateSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateSort.java	(working copy)
@@ -19,17 +19,17 @@
 
 import java.util.Arrays;
 
-import org.apache.lucene.index.Term;
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Test date sorting, i.e. auto-sorting of fields with type "long".
@@ -104,13 +104,15 @@
     Document document = new Document();
 
     // Add the text field.
-    Field textField = newField(TEXT_FIELD, text, TextField.TYPE_STORED);
+    Field textField = newField(TEXT_FIELD, text, TextField.TYPE);
     document.add(textField);
+    document.add(newField(TEXT_FIELD, text, StoredField.TYPE));
 
     // Add the date/time field.
     String dateTimeString = DateTools.timeToString(time, DateTools.Resolution.SECOND);
-    Field dateTimeField = newField(DATE_TIME_FIELD, dateTimeString, StringField.TYPE_STORED);
+    Field dateTimeField = newField(DATE_TIME_FIELD, dateTimeString, StringField.TYPE);
     document.add(dateTimeField);
+    document.add(newField(DATE_TIME_FIELD, dateTimeString, StoredField.TYPE));
 
     return document;
   }
Index: lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMultiTermConstantScore.java	(working copy)
@@ -17,10 +17,15 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
+import junit.framework.Assert;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -33,10 +38,6 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import junit.framework.Assert;
-
 public class TestMultiTermConstantScore extends BaseTestRangeFilter {
 
   /** threshold for comparing floats */
@@ -60,14 +61,16 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, 
             new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)).setMergePolicy(newLogMergePolicy()));
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
     for (int i = 0; i < data.length; i++) {
       Document doc = new Document();
       doc.add(newField("id", String.valueOf(i), customType));// Field.Keyword("id",String.valueOf(i)));
       doc.add(newField("all", "all", customType));// Field.Keyword("all","all"));
       if (null != data[i]) {
-        doc.add(newField("data", data[i], TextField.TYPE_STORED));// Field.Text("data",data[i]));
+        doc.add(newField("data", data[i], TextField.TYPE));// Field.Text("data",data[i]));
+        doc.add(newField("data", data[i], StoredField.TYPE));// Field.Text("data",data[i]));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestBooleanScorer.java	(working copy)
@@ -23,6 +23,7 @@
 import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -45,7 +46,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     for (int i = 0; i < values.length; i++) {
       Document doc = new Document();
-      doc.add(newField(FIELD, values[i], StringField.TYPE_STORED));
+      doc.add(newField(FIELD, values[i], StringField.TYPE));
+      doc.add(newField(FIELD, values[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     IndexReader ir = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDocIdSet.java	(working copy)
@@ -103,7 +103,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newField("c", "val", StringField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -129,7 +129,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("c", "val", StringField.TYPE_UNSTORED));
+    doc.add(newField("c", "val", StringField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java	(working copy)
@@ -43,7 +43,7 @@
     directory = newDirectory();
     RandomIndexWriter iw = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java	(working copy)
@@ -24,15 +24,16 @@
 import java.util.Set;
 
 import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Payload;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.TermQuery;
@@ -110,7 +111,8 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer()).setSimilarity(similarity));
 
     Document doc = new Document();
-    doc.add(newField(PayloadHelper.FIELD, "one two three one four three", TextField.TYPE_STORED));
+    doc.add(newField(PayloadHelper.FIELD, "one two three one four three", TextField.TYPE));
+    doc.add(newField(PayloadHelper.FIELD, "one two three one four three", StoredField.TYPE));
     writer.addDocument(doc);
     IndexReader reader = writer.getReader();
     writer.close();
@@ -369,7 +371,8 @@
                                                      newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer()).setSimilarity(similarity));
 
     Document doc = new Document();
-    doc.add(newField(PayloadHelper.FIELD,"xx rr yy mm  pp", TextField.TYPE_STORED));
+    doc.add(newField(PayloadHelper.FIELD,"xx rr yy mm  pp", TextField.TYPE));
+    doc.add(newField(PayloadHelper.FIELD,"xx rr yy mm  pp", StoredField.TYPE));
     writer.addDocument(doc);
   
     IndexReader reader = writer.getReader();
@@ -432,7 +435,8 @@
     for(int i = 0; i < docs.length; i++) {
       doc = new Document();
       String docText = docs[i];
-      doc.add(newField(PayloadHelper.FIELD,docText, TextField.TYPE_STORED));
+      doc.add(newField(PayloadHelper.FIELD,docText, TextField.TYPE));
+      doc.add(newField(PayloadHelper.FIELD,docText, StoredField.TYPE));
       writer.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpanFirstQuery.java	(working copy)
@@ -41,10 +41,10 @@
     
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, analyzer);
     Document doc = new Document();
-    doc.add(newField("field", "the quick brown fox", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "the quick brown fox", TextField.TYPE));
     writer.addDocument(doc);
     Document doc2 = new Document();
-    doc2.add(newField("field", "quick brown fox", TextField.TYPE_UNSTORED));
+    doc2.add(newField("field", "quick brown fox", TextField.TYPE));
     writer.addDocument(doc2);
     
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java	(working copy)
@@ -54,7 +54,7 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(FIELD, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(FIELD, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java	(working copy)
@@ -28,6 +28,7 @@
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Payload;
@@ -115,7 +116,8 @@
     //writer.infoStream = System.out;
     for (int i = 0; i < 2000; i++) {
       Document doc = new Document();
-      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(newField("field", English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("field", English.intToEnglish(i), StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java	(working copy)
@@ -48,7 +48,7 @@
   }
   
   protected static Field field(String name, String value) {
-    return newField(name, value, TextField.TYPE_UNSTORED);
+    return newField(name, value, TextField.TYPE);
   }
 
   protected static IndexSearcher searcher;
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java	(working copy)
@@ -19,12 +19,11 @@
 
 import java.io.IOException;
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenFilter;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
@@ -33,6 +32,7 @@
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /*******************************************************************************
  * Tests the span query bug in Lucene. It demonstrates that SpanTermQuerys don't
@@ -92,8 +92,10 @@
       final String text) throws IOException {
     
     final Document document = new Document();
-    document.add(newField(FIELD_ID, id, StringField.TYPE_STORED));
-    document.add(newField(FIELD_TEXT, text, TextField.TYPE_STORED));
+    document.add(newField(FIELD_ID, id, StringField.TYPE));
+    document.add(newField(FIELD_ID, id, StoredField.TYPE));
+    document.add(newField(FIELD_TEXT, text, TextField.TYPE));
+    document.add(newField(FIELD_TEXT, text, StoredField.TYPE));
     writer.addDocument(document);
   }
   
Index: lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -57,7 +58,8 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field, docFields[i], TextField.TYPE_STORED));
+      doc.add(newField(field, docFields[i], TextField.TYPE));
+      doc.add(newField(field, docFields[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -446,8 +448,10 @@
   // LUCENE-1404
   private void addDoc(IndexWriter writer, String id, String text) throws IOException {
     final Document doc = new Document();
-    doc.add( newField("id", id, StringField.TYPE_STORED) );
-    doc.add( newField("text", text, TextField.TYPE_STORED) );
+    doc.add( newField("id", id, StringField.TYPE) );
+    doc.add( newField("id", id, StoredField.TYPE) );
+    doc.add( newField("text", text, TextField.TYPE) );
+    doc.add( newField("text", text, StoredField.TYPE) );
     writer.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSubScorerFreqs.java	(working copy)
@@ -45,11 +45,11 @@
     int num = atLeast(31);
     for (int i = 0; i < num; i++) {
       Document doc = new Document();
-      doc.add(newField("f", "a b c d b c d c d d", TextField.TYPE_UNSTORED));
+      doc.add(newField("f", "a b c d b c d c d d", TextField.TYPE));
       w.addDocument(doc);
 
       doc = new Document();
-      doc.add(newField("f", "a b c d", TextField.TYPE_UNSTORED));
+      doc.add(newField("f", "a b c d", TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFieldValueFilter.java	(working copy)
@@ -20,6 +20,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -96,10 +97,12 @@
       Document doc = new Document();
       if (random().nextBoolean()) {
         docStates[i] = 1;
-        doc.add(newField("some", "value", TextField.TYPE_STORED));
+        doc.add(newField("some", "value", TextField.TYPE));
+        doc.add(newField("some", "value", StoredField.TYPE));
       }
-      doc.add(newField("all", "test", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+      doc.add(newField("all", "test", TextField.TYPE));
+      doc.add(newField("id", "" + i, TextField.TYPE));
+      doc.add(newField("id", "" + i, StoredField.TYPE));
       writer.addDocument(doc);
     }
     writer.commit();
Index: lucene/core/src/test/org/apache/lucene/search/TestWildcard.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestWildcard.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestWildcard.java	(working copy)
@@ -17,10 +17,11 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -28,9 +29,9 @@
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.Terms;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 /**
  * TestWildcard tests the '*' and '?' wildcard characters.
  */
@@ -250,7 +251,8 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), indexStore);
     for (int i = 0; i < contents.length; ++i) {
       Document doc = new Document();
-      doc.add(newField(field, contents[i], TextField.TYPE_STORED));
+      doc.add(newField(field, contents[i], TextField.TYPE));
+      doc.add(newField(field, contents[i], StoredField.TYPE));
       writer.addDocument(doc);
     }
     writer.close();
@@ -350,7 +352,7 @@
         .setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docs.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field,docs[i],TextField.TYPE_UNSTORED));
+      doc.add(newField(field,docs[i],TextField.TYPE));
       iw.addDocument(doc);
     }
     iw.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java	(working copy)
@@ -95,8 +95,8 @@
 
       for(int docIDX=0;docIDX<numDocs;docIDX++) {
         final Document doc = new Document();
-        doc.add(newField("string", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE_UNSTORED));
-        doc.add(newField("text", content[random().nextInt(content.length)], TextField.TYPE_UNSTORED));
+        doc.add(newField("string", _TestUtil.randomRealisticUnicodeString(random()), StringField.TYPE));
+        doc.add(newField("text", content[random().nextInt(content.length)], TextField.TYPE));
         doc.add(new FloatField("float", random().nextFloat()));
         final int intValue;
         if (random().nextInt(100) == 17) {
Index: lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/BaseTestRangeFilter.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -115,11 +116,15 @@
   
   private static IndexReader build(Random random, TestIndex index) throws IOException {
     /* build an index */
+
+    FieldType storedStringType = new FieldType(StringField.TYPE);
+    storedStringType.setStored(true);
+    storedStringType.freeze();
     
     Document doc = new Document();
-    Field idField = newField(random, "id", "", StringField.TYPE_STORED);
-    Field randField = newField(random, "rand", "", StringField.TYPE_STORED);
-    Field bodyField = newField(random, "body", "", StringField.TYPE_UNSTORED);
+    Field idField = newField(random, "id", "", storedStringType);
+    Field randField = newField(random, "rand", "", storedStringType);
+    Field bodyField = newField(random, "body", "", StringField.TYPE);
     doc.add(idField);
     doc.add(randField);
     doc.add(bodyField);
Index: lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestNRTManager.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -304,7 +305,8 @@
     final NRTManager.TrackingIndexWriter writer = new NRTManager.TrackingIndexWriter(_writer);
     final NRTManager manager = new NRTManager(writer, null, false);
     Document doc = new Document();
-    doc.add(newField("test","test", TextField.TYPE_STORED));
+    doc.add(newField("test","test", TextField.TYPE));
+    doc.add(newField("test","test", StoredField.TYPE));
     long gen = writer.addDocument(doc);
     manager.maybeRefresh();
     assertFalse(gen < manager.getCurrentSearchingGen());
Index: lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java	(working copy)
@@ -60,7 +60,7 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(field, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(field, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     writer.close();
@@ -92,12 +92,12 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()))
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    doc.add(newField("field2", "xxx", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "xxx", TextField.TYPE));
     for(int i=0;i<NUM_EXTRA_DOCS/2;i++) {
       w.addDocument(doc);
     }
     doc = new Document();
-    doc.add(newField("field2", "big bad bug", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "big bad bug", TextField.TYPE));
     for(int i=0;i<NUM_EXTRA_DOCS/2;i++) {
       w.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/search/TestExplanations.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestExplanations.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestExplanations.java	(working copy)
@@ -74,11 +74,11 @@
     RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < docFields.length; i++) {
       Document doc = new Document();
-      doc.add(newField(KEY, ""+i, StringField.TYPE_UNSTORED));
-      Field f = newField(FIELD, docFields[i], TextField.TYPE_UNSTORED);
+      doc.add(newField(KEY, ""+i, StringField.TYPE));
+      Field f = newField(FIELD, docFields[i], TextField.TYPE);
       f.setBoost(i);
       doc.add(f);
-      doc.add(newField(ALTFIELD, docFields[i], TextField.TYPE_UNSTORED));
+      doc.add(newField(ALTFIELD, docFields[i], TextField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestScorerPerf.java	(working copy)
@@ -70,7 +70,7 @@
       Document d = new Document();
       for (int j=0; j<nTerms; j++) {
         if (random().nextInt(freq[j]) == 0) {
-          d.add(newField("f", terms[j].text(), StringField.TYPE_UNSTORED));
+          d.add(newField("f", terms[j].text(), StringField.TYPE));
           //System.out.println(d);
         }
       }
Index: lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestFuzzyQuery.java	(working copy)
@@ -17,12 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Arrays;
-import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -324,7 +325,8 @@
   
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newField("field", text, TextField.TYPE));
+    doc.add(newField("field", text, StoredField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestRegexpQuery.java	(working copy)
@@ -50,7 +50,7 @@
     Document doc = new Document();
     doc.add(newField(FN,
         "the quick brown fox jumps over the lazy ??? dog 493432 49344",
-        TextField.TYPE_UNSTORED));
+        TextField.TYPE));
     writer.addDocument(doc);
     reader = writer.getReader();
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestDateFilter.java	(working copy)
@@ -17,18 +17,19 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 /**
  * DateFilter JUnit tests.
  * 
@@ -49,9 +50,13 @@
     Document doc = new Document();
     // add time that is in the past
     doc.add(newField("datefield", DateTools.timeToString(now - 1000,
-        DateTools.Resolution.MILLISECOND), StringField.TYPE_STORED));
+        DateTools.Resolution.MILLISECOND), StringField.TYPE));
+    doc.add(newField("datefield", DateTools.timeToString(now - 1000,
+        DateTools.Resolution.MILLISECOND), StoredField.TYPE));
     doc.add(newField("body", "Today is a very sunny day in New York City",
-        TextField.TYPE_STORED));
+        TextField.TYPE));
+    doc.add(newField("body", "Today is a very sunny day in New York City",
+        StoredField.TYPE));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
@@ -114,9 +119,13 @@
     Document doc = new Document();
     // add time that is in the future
     doc.add(newField("datefield", DateTools.timeToString(now + 888888,
-        DateTools.Resolution.MILLISECOND), StringField.TYPE_STORED));
+        DateTools.Resolution.MILLISECOND), StringField.TYPE));
+    doc.add(newField("datefield", DateTools.timeToString(now + 888888,
+        DateTools.Resolution.MILLISECOND), StoredField.TYPE));
     doc.add(newField("body", "Today is a very sunny day in New York City",
-                     TextField.TYPE_STORED));
+                     TextField.TYPE));
+    doc.add(newField("body", "Today is a very sunny day in New York City",
+                     StoredField.TYPE));
     writer.addDocument(doc);
     
     IndexReader reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java	(working copy)
@@ -22,13 +22,13 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.util.LuceneTestCase;
 
 /**
@@ -99,9 +99,10 @@
   
   private void addDoc(String text, IndexWriter iw, float boost) throws IOException {
     Document doc = new Document();
-    Field f = newField("key", text, TextField.TYPE_STORED);
+    Field f = newField("key", text, TextField.TYPE);
     f.setBoost(boost);
     doc.add(f);
+    doc.add(newField("key", text, StoredField.TYPE));
     iw.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSimilarity.java	(working copy)
@@ -17,10 +17,12 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.util.LuceneTestCase;
-
 import java.io.IOException;
 
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.index.IndexReader;
@@ -30,9 +32,7 @@
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.TextField;
+import org.apache.lucene.util.LuceneTestCase;
 
 /** Similarity unit test.
  *
@@ -59,10 +59,12 @@
         .setSimilarity(new SimpleSimilarity()));
     
     Document d1 = new Document();
-    d1.add(newField("field", "a c", TextField.TYPE_STORED));
+    d1.add(newField("field", "a c", TextField.TYPE));
+    d1.add(newField("field", "a c", StoredField.TYPE));
 
     Document d2 = new Document();
-    d2.add(newField("field", "a b c", TextField.TYPE_STORED));
+    d2.add(newField("field", "a b c", TextField.TYPE));
+    d2.add(newField("field", "a b c", StoredField.TYPE));
     
     writer.addDocument(d1);
     writer.addDocument(d2);
Index: lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java	(working copy)
@@ -25,6 +25,7 @@
 
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
@@ -57,13 +58,16 @@
       Document doc = new Document();
       if ((i % 5) != 0) { // some documents must not have an entry in the first
                           // sort field
-        doc.add(newField("publicationDate_", random.getLuceneDate(), StringField.TYPE_STORED));
+        doc.add(newField("publicationDate_", random.getLuceneDate(), StringField.TYPE));
+        doc.add(newField("publicationDate_", random.getLuceneDate(), StoredField.TYPE));
       }
       if ((i % 7) == 0) { // some documents to match the query (see below)
-        doc.add(newField("content", "test", TextField.TYPE_STORED));
+        doc.add(newField("content", "test", TextField.TYPE));
+        doc.add(newField("content", "test", StoredField.TYPE));
       }
       // every document has a defined 'mandant' field
-      doc.add(newField("mandant", Integer.toString(i % 3), StringField.TYPE_STORED));
+      doc.add(newField("mandant", Integer.toString(i % 3), StringField.TYPE));
+      doc.add(newField("mandant", Integer.toString(i % 3), StoredField.TYPE));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
Index: lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java	(working copy)
@@ -49,9 +49,9 @@
         new MockAnalyzer(random())).setSimilarity(sim);
     RandomIndexWriter iw = new RandomIndexWriter(random(), directory, iwc);
     Document doc = new Document();
-    Field field = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field field = newField("foo", "", TextField.TYPE);
     doc.add(field);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(field2);
     
     field.setStringValue("quick brown fox");
Index: lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestUniqueTermCount.java	(working copy)
@@ -49,7 +49,7 @@
     config.setSimilarity(new TestSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java	(working copy)
@@ -38,9 +38,9 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     
     Document doc = new Document();
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
-    Field field1 = newField("foo", "", TextField.TYPE_UNSTORED);
-    Field field2 = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field id = newField("id", "", StringField.TYPE);
+    Field field1 = newField("foo", "", TextField.TYPE);
+    Field field2 = newField("bar", "", TextField.TYPE);
     doc.add(id);
     doc.add(field1);
     doc.add(field2);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.AlreadyClosedException;
@@ -59,7 +60,8 @@
     public void run() {
 
       final Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -300,7 +302,8 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random()))
       .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -477,8 +480,9 @@
      public void run() {
        try {
          Document doc = new Document();
-         Field field = newField("field", "testData", TextField.TYPE_STORED);
+         Field field = newField("field", "testData", TextField.TYPE);
          doc.add(field);
+         doc.add(newField("field", "testData", StoredField.TYPE));
          IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
              TEST_VERSION_CURRENT, new MockAnalyzer(random())));
          iwConstructed.countDown();
Index: lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java	(working copy)
@@ -89,7 +89,8 @@
       // Update all 100 docs...
       for(int i=0; i<100; i++) {
         Document d = new Document();
-        d.add(new Field("id", Integer.toString(i), StringField.TYPE_STORED));
+        d.add(new Field("id", Integer.toString(i), StringField.TYPE));
+        d.add(new Field("id", Integer.toString(i), StoredField.TYPE));
         d.add(new TextField("contents", English.intToEnglish(i+10*count)));
         writer.updateDocument(new Term("id", Integer.toString(i)), d);
       }
@@ -129,8 +130,9 @@
     // Establish a base index of 100 docs:
     for(int i=0;i<100;i++) {
       Document d = new Document();
-      d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-      d.add(newField("contents", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      d.add(newField("id", Integer.toString(i), StringField.TYPE));
+      d.add(newField("id", Integer.toString(i), StoredField.TYPE));
+      d.add(newField("contents", English.intToEnglish(i), TextField.TYPE));
       if ((i-1)%7 == 0) {
         writer.commit();
       }
Index: lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestMixedCodecs.java	(working copy)
@@ -23,11 +23,12 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 @SuppressCodecs("Lucene3x")
 public class TestMixedCodecs extends LuceneTestCase {
@@ -61,7 +62,8 @@
         docsLeftInThisSegment = _TestUtil.nextInt(random(), 10, 100);
       }
       final Document doc = new Document();
-      doc.add(newField("id", String.valueOf(docUpto), StringField.TYPE_STORED));
+      doc.add(newField("id", String.valueOf(docUpto), StringField.TYPE));
+      doc.add(newField("id", String.valueOf(docUpto), StoredField.TYPE));
       w.addDocument(doc);
       docUpto++;
       docsLeftInThisSegment--;
Index: lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum2.java	(working copy)
@@ -28,6 +28,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.TermsEnum.SeekStatus;
 import org.apache.lucene.search.AutomatonQuery;
@@ -64,14 +65,17 @@
             new MockAnalyzer(random(), MockTokenizer.KEYWORD, false))
             .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_STORED);
+    Field field = newField("field", "", StringField.TYPE);
+    Field storedField = newField("field", "", StoredField.TYPE);
     doc.add(field);
+    doc.add(storedField);
     terms = new TreeSet<BytesRef>();
  
     int num = atLeast(200);
     for (int i = 0; i < num; i++) {
       String s = _TestUtil.randomUnicodeString(random());
       field.setStringValue(s);
+      storedField.setStringValue(s);
       terms.add(new BytesRef(s));
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressIndexing.java	(working copy)
@@ -78,8 +78,9 @@
       for(int j=0; j<10; j++) {
         Document d = new Document();
         int n = random().nextInt();
-        d.add(newField("id", Integer.toString(nextID++), StringField.TYPE_STORED));
-        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+        d.add(newField("id", Integer.toString(nextID++), StringField.TYPE));
+        d.add(newField("id", Integer.toString(nextID++), StoredField.TYPE));
+        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
         writer.addDocument(d);
       }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java	(working copy)
@@ -15,22 +15,23 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.store.AlreadyClosedException;
-import org.apache.lucene.store.Directory;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Random;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.store.AlreadyClosedException;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Random;
 
-
 public class TestIndexWriterMerging extends LuceneTestCase
 {
 
@@ -111,7 +112,8 @@
     for (int i = start; i < (start + numDocs); i++)
     {
       Document temp = new Document();
-      temp.add(newField("count", (""+i), StringField.TYPE_STORED));
+      temp.add(newField("count", (""+i), StringField.TYPE));
+      temp.add(newField("count", (""+i), StoredField.TYPE));
 
       writer.addDocument(temp);
     }
@@ -131,13 +133,13 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
     customType1.setStoreTermVectorOffsets(true);
     
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     Field storedField = newField("stored", "stored", customType);
     document.add(storedField);
@@ -194,7 +196,7 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
@@ -204,7 +206,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
@@ -259,7 +261,7 @@
     FieldType customType = new FieldType();
     customType.setStored(true);
 
-    FieldType customType1 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
     customType1.setTokenized(false);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
@@ -270,7 +272,7 @@
     document.add(storedField);
     Field termVectorField = newField("termVector", "termVector", customType1);
     document.add(termVectorField);
-    Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+    Field idField = newField("id", "", StringField.TYPE);
     document.add(idField);
     for(int i=0;i<98;i++) {
       idField.setStringValue("" + i);
@@ -343,7 +345,7 @@
     IndexWriter iw = new IndexWriter(dir, conf);
     Document document = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     
     document.add(newField("tvtest", "a b c", customType));
@@ -357,7 +359,8 @@
     Directory directory = newDirectory();
 
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
 
     Field idField = newField("id", "", customType);
Index: lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java	(working copy)
@@ -728,15 +728,15 @@
 
   private void addDocWithID(IndexWriter writer, int id) throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", "" + id, StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", "" + id, StringField.TYPE));
     writer.addDocument(doc);
   }
   
   private void addDoc(IndexWriter writer) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java	(working copy)
@@ -94,14 +94,14 @@
       }
       IndexWriter iw = new IndexWriter(rd1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      Field idField = newField("id", "", TextField.TYPE_UNSTORED);
+      Field idField = newField("id", "", TextField.TYPE);
       doc.add(idField);
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       doc.add(newField("test", "", customType));
       idField.setStringValue("1");
       iw.addDocument(doc);
-      doc.add(newField("test", "", TextField.TYPE_UNSTORED));
+      doc.add(newField("test", "", TextField.TYPE));
       idField.setStringValue("2");
       iw.addDocument(doc);
       iw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java	(working copy)
@@ -110,7 +110,8 @@
         @Override
         public void run() {
           Document doc = new Document();
-          FieldType customType = new FieldType(TextField.TYPE_STORED);
+          FieldType customType = new FieldType(TextField.TYPE);
+          customType.setStored(true);
           customType.setStoreTermVectors(true);
           customType.setStoreTermVectorPositions(true);
           customType.setStoreTermVectorOffsets(true);
@@ -155,7 +156,8 @@
     // final segment, so deletion policy has a chance to
     // delete again:
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java	(working copy)
@@ -340,7 +340,7 @@
             try {
               final Document doc = new Document();
               DirectoryReader r = DirectoryReader.open(dir);
-              Field f = newField("f", "", StringField.TYPE_UNSTORED);
+              Field f = newField("f", "", StringField.TYPE);
               doc.add(f);
               int count = 0;
               do {
Index: lucene/core/src/test/org/apache/lucene/index/TestFlex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFlex.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestFlex.java	(working copy)
@@ -40,10 +40,10 @@
     for(int iter=0;iter<2;iter++) {
       if (iter == 0) {
         Document doc = new Document();
-        doc.add(newField("field1", "this is field1", TextField.TYPE_UNSTORED));
-        doc.add(newField("field2", "this is field2", TextField.TYPE_UNSTORED));
-        doc.add(newField("field3", "aaa", TextField.TYPE_UNSTORED));
-        doc.add(newField("field4", "bbb", TextField.TYPE_UNSTORED));
+        doc.add(newField("field1", "this is field1", TextField.TYPE));
+        doc.add(newField("field2", "this is field2", TextField.TYPE));
+        doc.add(newField("field3", "aaa", TextField.TYPE));
+        doc.add(newField("field4", "bbb", TextField.TYPE));
         for(int i=0;i<DOC_COUNT;i++) {
           w.addDocument(doc);
         }
@@ -67,7 +67,7 @@
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
                                                              new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("f", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "a b c", TextField.TYPE));
     w.addDocument(doc);
     w.forceMerge(1);
     DirectoryReader r = w.getReader();
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java	(working copy)
@@ -488,7 +488,7 @@
 
     Document doc = new Document();
 
-    doc.add(newField("f", "doctor who", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "doctor who", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
@@ -524,7 +524,8 @@
         .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
     dir.setMaxSizeInBytes(Math.max(1, dir.getRecomputedActualSizeInBytes()));
     final Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
     doc.add(newField("field", "aaa bbb ccc ddd eee fff ggg hhh iii jjj", customType));
@@ -557,15 +558,15 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
   
   private void addDocWithIndex(IndexWriter writer, int index) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa " + index, TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + index, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa " + index, TextField.TYPE));
+      doc.add(newField("id", "" + index, TextField.TYPE));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java	(working copy)
@@ -30,6 +30,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -57,11 +58,11 @@
     /* private field types */
     /* private field types */
 
-    private static final FieldType custom1 = new FieldType(TextField.TYPE_UNSTORED);
+    private static final FieldType custom1 = new FieldType(TextField.TYPE);
     private static final FieldType custom2 = new FieldType();
     private static final FieldType custom3 = new FieldType();
-    private static final FieldType custom4 = new FieldType(StringField.TYPE_UNSTORED);
-    private static final FieldType custom5 = new FieldType(TextField.TYPE_STORED);
+    private static final FieldType custom4 = new FieldType(StringField.TYPE);
+    private static final FieldType custom5 = new FieldType(TextField.TYPE);
     
     static {
 
@@ -78,6 +79,7 @@
       custom4.setStoreTermVectorPositions(true);
       custom4.setStoreTermVectorOffsets(true);
       
+      custom5.setStored(true);
       custom5.setStoreTermVectors(true);
       custom5.setStoreTermVectorPositions(true);
       custom5.setStoreTermVectorOffsets(true);
@@ -129,13 +131,14 @@
 
       final Document doc = new Document();
 
-      doc.add(newField(r, "content1", "aaa bbb ccc ddd", TextField.TYPE_STORED));
+      doc.add(newField(r, "content1", "aaa bbb ccc ddd", TextField.TYPE));
+      doc.add(newField(r, "content1", "aaa bbb ccc ddd", StoredField.TYPE));
       doc.add(newField(r, "content6", "aaa bbb ccc ddd", DocCopyIterator.custom1));
       doc.add(newField(r, "content2", "aaa bbb ccc ddd", DocCopyIterator.custom2));
       doc.add(newField(r, "content3", "aaa bbb ccc ddd", DocCopyIterator.custom3));
 
-      doc.add(newField(r, "content4", "aaa bbb ccc ddd", TextField.TYPE_UNSTORED));
-      doc.add(newField(r, "content5", "aaa bbb ccc ddd", StringField.TYPE_UNSTORED));
+      doc.add(newField(r, "content4", "aaa bbb ccc ddd", TextField.TYPE));
+      doc.add(newField(r, "content5", "aaa bbb ccc ddd", StringField.TYPE));
 
       doc.add(newField(r, "content7", "aaa bbb ccc ddd", DocCopyIterator.custom4));
 
@@ -356,7 +359,8 @@
     Directory dir = newDirectory();
     MockIndexWriter2 w = new MockIndexWriter2(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", TextField.TYPE));
+    doc.add(newField("field", "a field", StoredField.TYPE));
     w.addDocument(doc);
     w.doFail = true;
     try {
@@ -374,7 +378,8 @@
     Directory dir = newDirectory();
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", TextField.TYPE));
+    doc.add(newField("field", "a field", StoredField.TYPE));
     w.addDocument(doc);
 
     Analyzer analyzer = new Analyzer(new Analyzer.PerFieldReuseStrategy()) {
@@ -387,7 +392,8 @@
     };
 
     Document crashDoc = new Document();
-    crashDoc.add(newField("crash", "do it on token 4", TextField.TYPE_STORED));
+    crashDoc.add(newField("crash", "do it on token 4", TextField.TYPE));
+    crashDoc.add(newField("crash", "do it on token 4", StoredField.TYPE));
     try {
       w.addDocument(crashDoc, analyzer);
       fail("did not hit expected exception");
@@ -428,7 +434,8 @@
     MockIndexWriter3 w = new MockIndexWriter3(dir, conf);
     w.doFail = true;
     Document doc = new Document();
-    doc.add(newField("field", "a field", TextField.TYPE_STORED));
+    doc.add(newField("field", "a field", TextField.TYPE));
+    doc.add(newField("field", "a field", StoredField.TYPE));
     for(int i=0;i<10;i++)
       try {
         w.addDocument(doc);
@@ -477,7 +484,7 @@
 
     Document doc = new Document();
     String contents = "aa bb cc dd ee ff gg hh ii jj kk";
-    doc.add(newField("content", contents, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", contents, TextField.TYPE));
     try {
       writer.addDocument(doc);
       fail("did not hit expected exception");
@@ -486,12 +493,12 @@
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(newField("content", "aa bb cc dd", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aa bb cc dd", TextField.TYPE));
     writer.addDocument(doc);
 
     // Make sure we can add another normal document
     doc = new Document();
-    doc.add(newField("content", "aa bb cc dd", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aa bb cc dd", TextField.TYPE));
     writer.addDocument(doc);
 
     writer.close();
@@ -564,7 +571,7 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
     String contents = "aa bb cc dd ee ff gg hh ii jj kk";
-    doc.add(newField("content", contents, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", contents, TextField.TYPE));
     boolean hitError = false;
     for(int i=0;i<200;i++) {
       try {
@@ -816,7 +823,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
 
@@ -913,7 +920,8 @@
       IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
           TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      doc.add(newField("field", "a field", TextField.TYPE_STORED));
+      doc.add(newField("field", "a field", TextField.TYPE));
+      doc.add(newField("field", "a field", StoredField.TYPE));
       w.addDocument(doc);
       dir.failOn(failure);
       try {
@@ -1247,8 +1255,10 @@
         int numDocs = 10 + random().nextInt(30);
         for (int i = 0; i < numDocs; i++) {
           Document doc = new Document();
-          Field field = newField(random(), "field", "a field", TextField.TYPE_STORED);
+          Field field = newField(random(), "field", "a field", TextField.TYPE);
+          Field storedField = newField(random(), "field", "a field", StoredField.TYPE);
           doc.add(field);
+          doc.add(storedField);
           // random TV
           try {
             w.addDocument(doc);
@@ -1263,13 +1273,16 @@
             
         }
         Document document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new Field("field", "a field", TextField.TYPE));
+        document.add(new Field("field", "a field", StoredField.TYPE));
         w.addDocument(document);
 
         for (int i = 0; i < numDocs; i++) {
           Document doc = new Document();
-          Field field = newField(random(), "field", "a field", TextField.TYPE_STORED);
+          Field field = newField(random(), "field", "a field", TextField.TYPE);
+          Field storedField = newField(random(), "field", "a field", StoredField.TYPE);
           doc.add(field);
+          doc.add(storedField);
           // random TV
           try {
             w.addDocument(doc);
@@ -1283,7 +1296,8 @@
           }
         }
         document = new Document();
-        document.add(new Field("field", "a field", TextField.TYPE_STORED));
+        document.add(new Field("field", "a field", TextField.TYPE));
+        document.add(new Field("field", "a field", StoredField.TYPE));
         w.addDocument(document);
         w.close();
         IndexReader reader = DirectoryReader.open(dir);
@@ -1333,7 +1347,7 @@
     final int numDocs1 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs1;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
     
@@ -1341,10 +1355,10 @@
     for(int docCount=0;docCount<7;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
       if (docCount == 4) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newField("crash", "", TextField.TYPE);
         doc.add(f);
         MockTokenizer tokenizer = new MockTokenizer(new StringReader("crash me on the 4th token"), MockTokenizer.WHITESPACE, false);
         tokenizer.setEnableChecks(false); // disable workflow checking as we forcefully close() in exceptional cases.
@@ -1363,7 +1377,7 @@
     final int numDocs2 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs2;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1391,7 +1405,7 @@
     final int numDocs1 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs1;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1401,16 +1415,16 @@
     for(int docCount=0;docCount<numDocs2;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("subid", "subs", StringField.TYPE_UNSTORED));
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("subid", "subs", StringField.TYPE));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
     }
     w.addDocuments(docs);
 
     final int numDocs3 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs3;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
@@ -1420,10 +1434,10 @@
     for(int docCount=0;docCount<limit;docCount++) {
       Document doc = new Document();
       docs.add(doc);
-      doc.add(newField("id", docCount+"", StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "silly content " + docCount, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", docCount+"", StringField.TYPE));
+      doc.add(newField("content", "silly content " + docCount, TextField.TYPE));
       if (docCount == crashAt) {
-        Field f = newField("crash", "", TextField.TYPE_UNSTORED);
+        Field f = newField("crash", "", TextField.TYPE);
         doc.add(f);
         MockTokenizer tokenizer = new MockTokenizer(new StringReader("crash me on the 4th token"), MockTokenizer.WHITESPACE, false);
         tokenizer.setEnableChecks(false); // disable workflow checking as we forcefully close() in exceptional cases.
@@ -1443,7 +1457,7 @@
     final int numDocs4 = random().nextInt(25);
     for(int docCount=0;docCount<numDocs4;docCount++) {
       Document doc = new Document();
-      doc.add(newField("content", "good content", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "good content", TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -75,8 +76,10 @@
 
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StringField.TYPE);
+    Field idFieldStored = newField("id", "", StoredField.TYPE);
     doc.add(idField);
+    doc.add(idFieldStored);
     int extraCount = 0;
 
     for(int i=0;i<10;i++) {
@@ -86,6 +89,7 @@
 
       for(int j=0;j<20;j++) {
         idField.setStringValue(Integer.toString(i*20+j));
+        idFieldStored.setStringValue(Integer.toString(i*20+j));
         writer.addDocument(doc);
       }
 
@@ -134,14 +138,17 @@
         .setMergePolicy(mp));
 
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StringField.TYPE);
+    Field idFieldStored = newField("id", "", StoredField.TYPE);
     doc.add(idField);
+    doc.add(idFieldStored);
     for(int i=0;i<10;i++) {
       if (VERBOSE) {
         System.out.println("\nTEST: cycle");
       }
       for(int j=0;j<100;j++) {
         idField.setStringValue(Integer.toString(i*100+j));
+        idFieldStored.setStringValue(Integer.toString(i*100+j));
         writer.addDocument(doc);
       }
 
@@ -178,7 +185,7 @@
 
       for(int j=0;j<21;j++) {
         Document doc = new Document();
-        doc.add(newField("content", "a b c", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "a b c", TextField.TYPE));
         writer.addDocument(doc);
       }
         
@@ -199,8 +206,10 @@
   public void testNoWaitClose() throws IOException {
     MockDirectoryWrapper directory = newDirectory();
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StringField.TYPE);
+    Field idFieldStored = newField("id", "", StoredField.TYPE);
     doc.add(idField);
+    doc.add(idFieldStored);
 
     IndexWriter writer = new IndexWriter(
         directory,
@@ -213,6 +222,7 @@
 
       for(int j=0;j<201;j++) {
         idField.setStringValue(Integer.toString(iter*201+j));
+        idFieldStored.setStringValue(Integer.toString(iter*201+j));
         writer.addDocument(doc);
       }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java	(working copy)
@@ -50,8 +50,8 @@
     @Override public float scorePayload(int doc, int start, int end, BytesRef payload) { return 1.0f; }
   }
 
-  private static final FieldType omitType = new FieldType(TextField.TYPE_UNSTORED);
-  private static final FieldType normalType = new FieldType(TextField.TYPE_UNSTORED);
+  private static final FieldType omitType = new FieldType(TextField.TYPE);
+  private static final FieldType normalType = new FieldType(TextField.TYPE);
   
   static {
     omitType.setIndexOptions(IndexOptions.DOCS_ONLY);
@@ -229,7 +229,7 @@
     // now add some documents with positions, and check
     // there is no prox after full merge
     d = new Document();
-    f1 = newField("f1", "This field has positions", TextField.TYPE_UNSTORED);
+    f1 = newField("f1", "This field has positions", TextField.TYPE);
     d.add(f1);
     
     for(int i=0;i<30;i++)
@@ -430,7 +430,7 @@
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     ft.freeze();
     Field f = newField("foo", "bar", ft);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java	(working copy)
@@ -223,7 +223,7 @@
 
   private void addDoc(IndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressNRT.java	(working copy)
@@ -29,6 +29,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
@@ -232,7 +233,8 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE));
+                      d.add(newField("id", "-"+Integer.toString(id), StoredField.TYPE));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -248,7 +250,8 @@
                     // add tombstone first
                     if (tombstones) {
                       Document d = new Document();
-                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE_STORED));
+                      d.add(newField("id", "-"+Integer.toString(id), StringField.TYPE));
+                      d.add(newField("id", "-"+Integer.toString(id), StoredField.TYPE));
                       d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                       writer.updateDocument(new Term("id", "-"+Integer.toString(id)), d);
                     }
@@ -261,7 +264,8 @@
                   } else {
                     // assertU(adoc("id",Integer.toString(id), field, Long.toString(nextVal)));
                     Document d = new Document();
-                    d.add(newField("id", Integer.toString(id), StringField.TYPE_STORED));
+                    d.add(newField("id", Integer.toString(id), StringField.TYPE));
+                    d.add(newField("id", Integer.toString(id), StoredField.TYPE));
                     d.add(newField(field, Long.toString(nextVal), storedOnlyType));
                     if (VERBOSE) {
                       System.out.println("TEST: " + Thread.currentThread().getName() + ": u id:" + id + " val=" + nextVal);
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java	(working copy)
@@ -40,7 +40,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     Field f = newField("foo", "this is a test test", ft);
     doc.add(f);
@@ -71,7 +71,7 @@
     Document d = new Document();
         
     // f1,f2,f3: docs only
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     
     Field f1 = newField("f1", "This field has docs only", ft);
@@ -83,7 +83,7 @@
     Field f3 = newField("f3", "This field has docs only", ft);
     d.add(f3);
 
-    FieldType ft2 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft2 = new FieldType(TextField.TYPE);
     ft2.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     
     // f4,f5,f6 docs and freqs
@@ -96,7 +96,7 @@
     Field f6 = newField("f6", "This field has docs and freqs", ft2);
     d.add(f6);
     
-    FieldType ft3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft3 = new FieldType(TextField.TYPE);
     ft3.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
     
     // f7,f8,f9 docs/freqs/positions
@@ -197,7 +197,7 @@
     lmp.setUseCompoundFile(false);
     Document d = new Document();
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
     Field f1 = newField("f1", "This field has term freqs", ft);
     d.add(f1);
@@ -211,7 +211,7 @@
     
     // now add some documents with positions, and check there is no prox after optimization
     d = new Document();
-    f1 = newField("f1", "This field has positions", TextField.TYPE_UNSTORED);
+    f1 = newField("f1", "This field has positions", TextField.TYPE);
     d.add(f1);
     
     for(int i=0;i<30;i++)
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java	(working copy)
@@ -131,7 +131,7 @@
         new MockAnalyzer(random)).setOpenMode(
         create ? OpenMode.CREATE : OpenMode.APPEND));
     Document doc = new Document();
-    doc.add(newField("body", s, TextField.TYPE_UNSTORED));
+    doc.add(newField("body", s, TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
   }
@@ -178,8 +178,10 @@
       FieldType customType3 = new FieldType();
       customType3.setStored(true);
       
-      doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-      doc.add(new Field("text", "test1", TextField.TYPE_STORED));
+      doc.add(new Field("keyword", "test1", StringField.TYPE));
+      doc.add(new Field("keyword", "test1", StoredField.TYPE));
+      doc.add(new Field("text", "test1", TextField.TYPE));
+      doc.add(new Field("text", "test1", StoredField.TYPE));
       doc.add(new Field("unindexed", "test1", customType3));
       doc.add(new TextField("unstored","test1"));
       writer.addDocument(doc);
@@ -204,8 +206,10 @@
       int mergeFactor = ((LogMergePolicy) writer.getConfig().getMergePolicy()).getMergeFactor();
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-        doc.add(new Field("text", "test1", TextField.TYPE_STORED));
+        doc.add(new Field("keyword", "test1", StringField.TYPE));
+        doc.add(new Field("keyword", "test1", StoredField.TYPE));
+        doc.add(new Field("text", "test1", TextField.TYPE));
+        doc.add(new Field("text", "test1", StoredField.TYPE));
         doc.add(new Field("unindexed", "test1", customType3));
         doc.add(new TextField("unstored","test1"));
         writer.addDocument(doc);
@@ -213,30 +217,37 @@
       // new fields are in some different segments (we hope)
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("keyword2", "test1", StringField.TYPE_STORED));
-        doc.add(new Field("text2", "test1", TextField.TYPE_STORED));
+        doc.add(new Field("keyword2", "test1", StringField.TYPE));
+        doc.add(new Field("keyword2", "test1", StoredField.TYPE));
+        doc.add(new Field("text2", "test1", TextField.TYPE));
+        doc.add(new Field("text2", "test1", StoredField.TYPE));
         doc.add(new Field("unindexed2", "test1", customType3));
         doc.add(new TextField("unstored2","test1"));
         writer.addDocument(doc);
       }
       // new termvector fields
 
-      FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType5 = new FieldType(TextField.TYPE);
+      customType5.setStored(true);
       customType5.setStoreTermVectors(true);
-      FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType6 = new FieldType(TextField.TYPE);
+      customType6.setStored(true);
       customType6.setStoreTermVectors(true);
       customType6.setStoreTermVectorOffsets(true);
-      FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType7 = new FieldType(TextField.TYPE);
+      customType7.setStored(true);
       customType7.setStoreTermVectors(true);
       customType7.setStoreTermVectorPositions(true);
-      FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType8 = new FieldType(TextField.TYPE);
+      customType8.setStored(true);
       customType8.setStoreTermVectors(true);
       customType8.setStoreTermVectorOffsets(true);
       customType8.setStoreTermVectorPositions(true);
       
       for (int i = 0; i < 5*mergeFactor; i++) {
         doc = new Document();
-        doc.add(new Field("tvnot", "tvnot", TextField.TYPE_STORED));
+        doc.add(new Field("tvnot", "tvnot", TextField.TYPE));
+        doc.add(new Field("tvnot", "tvnot", StoredField.TYPE));
         doc.add(new Field("termvector", "termvector", customType5));
         doc.add(new Field("tvoffset", "tvoffset", customType6));
         doc.add(new Field("tvposition", "tvposition", customType7));
@@ -320,21 +331,26 @@
   // want to get some more segments here
   // new termvector fields
   int mergeFactor = ((LogMergePolicy) writer.getConfig().getMergePolicy()).getMergeFactor();
-  FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType5 = new FieldType(TextField.TYPE);
+  customType5.setStored(true);
   customType5.setStoreTermVectors(true);
-  FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType6 = new FieldType(TextField.TYPE);
+  customType6.setStored(true);
   customType6.setStoreTermVectors(true);
   customType6.setStoreTermVectorOffsets(true);
-  FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType7 = new FieldType(TextField.TYPE);
+  customType7.setStored(true);
   customType7.setStoreTermVectors(true);
   customType7.setStoreTermVectorPositions(true);
-  FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+  FieldType customType8 = new FieldType(TextField.TYPE);
+  customType8.setStored(true);
   customType8.setStoreTermVectors(true);
   customType8.setStoreTermVectorOffsets(true);
   customType8.setStoreTermVectorPositions(true);
   for (int i = 0; i < 5 * mergeFactor; i++) {
     Document doc = new Document();
-      doc.add(new Field("tvnot", "one two two three three three", TextField.TYPE_STORED));
+      doc.add(new Field("tvnot", "one two two three three three", TextField.TYPE));
+      doc.add(new Field("tvnot", "one two two three three three", StoredField.TYPE));
       doc.add(new Field("termvector", "one two two three three three", customType5));
       doc.add(new Field("tvoffset", "one two two three three three", customType6));
       doc.add(new Field("tvposition", "one two two three three three", customType7));
@@ -495,8 +511,10 @@
       
       FieldType customType3 = new FieldType();
       customType3.setStored(true);
-      doc.add(newField("keyword", "test1", StringField.TYPE_STORED));
-      doc.add(newField("text", "test1", TextField.TYPE_STORED));
+      doc.add(newField("keyword", "test1", StringField.TYPE));
+      doc.add(newField("keyword", "test1", StoredField.TYPE));
+      doc.add(newField("text", "test1", TextField.TYPE));
+      doc.add(newField("text", "test1", StoredField.TYPE));
       doc.add(newField("unindexed", "test1", customType3));
       doc.add(new TextField("unstored","test1"));
       writer.addDocument(doc);
@@ -508,8 +526,10 @@
     
     FieldType customType3 = new FieldType();
     customType3.setStored(true);
-    doc.add(newField("keyword2", "test1", StringField.TYPE_STORED));
-    doc.add(newField("text2", "test1", TextField.TYPE_STORED));
+    doc.add(newField("keyword2", "test1", StringField.TYPE));
+    doc.add(newField("keyword2", "test1", StoredField.TYPE));
+    doc.add(newField("text2", "test1", TextField.TYPE));
+    doc.add(newField("text2", "test1", StoredField.TYPE));
     doc.add(newField("unindexed2", "test1", customType3));
     doc.add(new TextField("unstored2","test1"));
     writer.addDocument(doc);
@@ -518,19 +538,23 @@
   static void addDocumentWithTermVectorFields(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      FieldType customType5 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType5 = new FieldType(TextField.TYPE);
+      customType5.setStored(true);
       customType5.setStoreTermVectors(true);
-      FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType6 = new FieldType(TextField.TYPE);
+      customType6.setStored(true);
       customType6.setStoreTermVectors(true);
       customType6.setStoreTermVectorOffsets(true);
-      FieldType customType7 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType7 = new FieldType(TextField.TYPE);
+      customType7.setStored(true);
       customType7.setStoreTermVectors(true);
       customType7.setStoreTermVectorPositions(true);
-      FieldType customType8 = new FieldType(TextField.TYPE_STORED);
-      customType8.setStoreTermVectors(true);
+      FieldType customType8 = new FieldType(TextField.TYPE);
+      customType8.setStored(true);
       customType8.setStoreTermVectorOffsets(true);
       customType8.setStoreTermVectorPositions(true);
-      doc.add(newField("tvnot","tvnot",TextField.TYPE_STORED));
+      doc.add(newField("tvnot","tvnot",TextField.TYPE));
+      doc.add(newField("tvnot","tvnot",StoredField.TYPE));
       doc.add(newField("termvector","termvector",customType5));
       doc.add(newField("tvoffset","tvoffset", customType6));
       doc.add(newField("tvposition","tvposition", customType7));
@@ -541,7 +565,7 @@
   
   static void addDoc(IndexWriter writer, String value) throws IOException {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", value, TextField.TYPE));
       writer.addDocument(doc);
   }
 
@@ -707,7 +731,8 @@
 
   static Document createDocument(String id) {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
     customType.setOmitNorms(true);
     
@@ -766,7 +791,7 @@
             setMergePolicy(newLogMergePolicy(10))
     );
     Document doc = new Document();
-    doc.add(newField("number", "17", StringField.TYPE_UNSTORED));
+    doc.add(newField("number", "17", StringField.TYPE));
     writer.addDocument(doc);
     writer.commit();
   
@@ -799,8 +824,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.commit();
@@ -828,8 +853,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.close();
@@ -936,7 +961,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d = new Document();
-    d.add(newField("f", "a a b", TextField.TYPE_UNSTORED));
+    d.add(newField("f", "a a b", TextField.TYPE));
     writer.addDocument(d);
     DirectoryReader r = writer.getReader();
     writer.close();
@@ -1073,8 +1098,10 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("field1", "foobar", StringField.TYPE_STORED));
-    doc.add(newField("field2", "foobaz", StringField.TYPE_STORED));
+    doc.add(newField("field1", "foobar", StringField.TYPE));
+    doc.add(newField("field1", "foobar", StoredField.TYPE));
+    doc.add(newField("field2", "foobaz", StringField.TYPE));
+    doc.add(newField("field2", "foobaz", StoredField.TYPE));
     writer.addDocument(doc);
     DirectoryReader r = writer.getReader();
     writer.close();
@@ -1096,8 +1123,8 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE_UNSTORED));
-    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c d e f g h i j k l m n o p q r s t u v w x y z", TextField.TYPE));
+    doc.add(newField("number", "0 1 2 3 4 5 6 7 8 9", TextField.TYPE));
     writer.addDocument(doc);
 
     // open(IndexWriter, boolean)
Index: lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java	(working copy)
@@ -134,7 +134,7 @@
         DirectoryReader open = null;
         for (int i = 0; i < num; i++) {
           Document doc = new Document();// docs.nextDoc();
-          doc.add(newField("id", "test", StringField.TYPE_UNSTORED));
+          doc.add(newField("id", "test", StringField.TYPE));
           writer.updateDocument(new Term("id", "test"), doc);
           if (random().nextInt(3) == 0) {
             if (open == null) {
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactionRollback.java	(working copy)
@@ -21,17 +21,18 @@
 import java.io.IOException;
 import java.util.BitSet;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.HashMap;
 
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.LuceneTestCase;
 
 /**
  * Test class to illustrate using IndexDeletionPolicy to provide multi-level rollback capability.
@@ -131,7 +132,8 @@
 
     for(int currentRecordId=1;currentRecordId<=100;currentRecordId++) {
       Document doc=new Document();
-      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId,TextField.TYPE_STORED));
+      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId,TextField.TYPE));
+      doc.add(newField(FIELD_RECORD_ID,""+currentRecordId,StoredField.TYPE));
       w.addDocument(doc);
 			
       if (currentRecordId%10 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java	(working copy)
@@ -32,6 +32,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -106,9 +107,11 @@
     DirectoryReader reader = DirectoryReader.open(dir);
     try {
       int M = 3;
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setTokenized(false);
-      FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType2 = new FieldType(TextField.TYPE);
+      customType2.setStored(true);
       customType2.setTokenized(false);
       customType2.setOmitNorms(true);
       FieldType customType3 = new FieldType();
@@ -482,18 +485,21 @@
     Document doc = new Document();
     sb.append("a");
     sb.append(n);
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setTokenized(false);
     customType2.setOmitNorms(true);
     FieldType customType3 = new FieldType();
     customType3.setStored(true);
-    doc.add(new Field("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(new Field("field1", sb.toString(), TextField.TYPE));
+    doc.add(new Field("field1", sb.toString(), StoredField.TYPE));
     doc.add(new Field("fielda", sb.toString(), customType2));
     doc.add(new Field("fieldb", sb.toString(), customType3));
     sb.append(" b");
     sb.append(n);
     for (int i = 1; i < numFields; i++) {
-      doc.add(new Field("field" + (i+1), sb.toString(), TextField.TYPE_STORED));
+      doc.add(new Field("field" + (i+1), sb.toString(), TextField.TYPE));
+      doc.add(new Field("field" + (i+1), sb.toString(), StoredField.TYPE));
     }
     return doc;
   }
@@ -591,7 +597,7 @@
     );
     for(int i=0;i<4;i++) {
       Document doc = new Document();
-      doc.add(newField("id", ""+i, StringField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+i, StringField.TYPE));
       writer.addDocument(doc);
       Map<String,String> data = new HashMap<String,String>();
       data.put("index", i+"");
Index: lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestRandomStoredFields.java	(working copy)
@@ -49,7 +49,8 @@
 
     final List<Integer> fieldIDs = new ArrayList<Integer>();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
     Field idField = newField("id", "", customType);
 
Index: lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java	(working copy)
@@ -22,6 +22,7 @@
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.PhraseQuery;
@@ -31,8 +32,8 @@
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util._TestUtil;
 
 /**
@@ -97,7 +98,8 @@
                 content = this.term3 + " " + this.term2;
             }
 
-            doc.add(newField(this.field, content, TextField.TYPE_STORED));
+            doc.add(newField(this.field, content, TextField.TYPE));
+            doc.add(newField(this.field, content, StoredField.TYPE));
             writer.addDocument(doc);
         }
         
@@ -146,7 +148,8 @@
         IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
         for (int i = 0; i < 10; i++) {
             Document doc = new Document();
-            doc.add(newField(this.field, "a b", TextField.TYPE_STORED));
+            doc.add(newField(this.field, "a b", TextField.TYPE));
+            doc.add(newField(this.field, "a b", StoredField.TYPE));
             writer.addDocument(doc);
         }
         
Index: lucene/core/src/test/org/apache/lucene/index/TestNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestNorms.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.Source;
 import org.apache.lucene.index.DocValues.Type;
@@ -67,8 +68,8 @@
     config.setSimilarity(new CustomNormEncodingSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
-    Field bar = newField("bar", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
+    Field bar = newField("bar", "", TextField.TYPE);
     doc.add(foo);
     doc.add(bar);
     
@@ -189,11 +190,13 @@
       Document doc = docs.nextDoc();
       int boost = writeNorms ? 1 + random().nextInt(255) : 0;
       Field f = new Field(byteTestField, "" + boost,
-          TextField.TYPE_STORED);
+                          TextField.TYPE);
       f.setBoost(boost);
       doc.add(f);
+      doc.add(new Field(byteTestField, "" + boost,
+                        StoredField.TYPE));
       writer.addDocument(doc);
-      doc.removeField(byteTestField);
+      doc.removeFields(byteTestField);
       if (rarely()) {
         writer.commit();
       }
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java	(working copy)
@@ -21,6 +21,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -44,8 +45,10 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     doc = new Document();
-    doc.add(newField("field1", "the quick brown fox jumps", TextField.TYPE_STORED));
-    doc.add(newField("field2", "the quick brown fox jumps", TextField.TYPE_STORED));
+    doc.add(newField("field1", "the quick brown fox jumps", TextField.TYPE));
+    doc.add(newField("field1", "the quick brown fox jumps", StoredField.TYPE));
+    doc.add(newField("field2", "the quick brown fox jumps", TextField.TYPE));
+    doc.add(newField("field2", "the quick brown fox jumps", StoredField.TYPE));
     iw1.addDocument(doc);
 
     iw1.close();
@@ -54,8 +57,10 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     doc = new Document();
-    doc.add(newField("field1", "the fox jumps over the lazy dog", TextField.TYPE_STORED));
-    doc.add(newField("field3", "the fox jumps over the lazy dog", TextField.TYPE_STORED));
+    doc.add(newField("field1", "the fox jumps over the lazy dog", TextField.TYPE));
+    doc.add(newField("field1", "the fox jumps over the lazy dog", StoredField.TYPE));
+    doc.add(newField("field3", "the fox jumps over the lazy dog", TextField.TYPE));
+    doc.add(newField("field3", "the fox jumps over the lazy dog", StoredField.TYPE));
     iw2.addDocument(doc);
 
     iw2.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
@@ -237,10 +238,10 @@
     Directory d = newDirectory();
     IndexWriter w = new IndexWriter(d, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a a\uffffb", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a a\uffffb", TextField.TYPE));
     w.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "a", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     assertEquals(1, r.docFreq(new Term("field", "a\uffffb")));
@@ -256,8 +257,10 @@
     Document doc = new Document();
 
     final int count = utf8Data.length/2;
-    for(int i=0;i<count;i++)
-      doc.add(newField("f" + i, utf8Data[2*i], TextField.TYPE_STORED));
+    for(int i=0;i<count;i++) {
+      doc.add(newField("f" + i, utf8Data[2*i], TextField.TYPE));
+      doc.add(newField("f" + i, utf8Data[2*i], StoredField.TYPE));
+    }
     w.addDocument(doc);
     w.close();
 
@@ -279,7 +282,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(rnd, dir);
     Document d = new Document();
     // Single segment
-    Field f = newField("f", "", StringField.TYPE_UNSTORED);
+    Field f = newField("f", "", StringField.TYPE);
     d.add(f);
     char[] chars = new char[2];
     final Set<String> allTerms = new HashSet<String>();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocCount.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocCount.java	(working copy)
@@ -53,7 +53,7 @@
     Document doc = new Document();
     int numFields = _TestUtil.nextInt(random(), 1, 10);
     for (int i = 0; i < numFields; i++) {
-      doc.add(newField("" + _TestUtil.nextInt(random(), 'a', 'z'), "" + _TestUtil.nextInt(random(), 'a', 'z'), StringField.TYPE_UNSTORED));
+      doc.add(newField("" + _TestUtil.nextInt(random(), 'a', 'z'), "" + _TestUtil.nextInt(random(), 'a', 'z'), StringField.TYPE));
     }
     return doc;
   }
Index: lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java	(working copy)
@@ -50,7 +50,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     for (int i = 0; i < 39; i++) {
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setOmitNorms(true);
       doc.add(newField(fieldName, "1 2 3 4 5 6 7 8 9 10 "
           + "1 2 3 4 5 6 7 8 9 10 " + "1 2 3 4 5 6 7 8 9 10 "
@@ -110,7 +110,7 @@
     int max = 1051;
     int term = random().nextInt(max);
     Integer[][] positionsInDoc = new Integer[numDocs][];
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
@@ -193,7 +193,7 @@
     int max = 15678;
     int term = random().nextInt(max);
     int[] freqInDoc = new int[numDocs];
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
@@ -270,7 +270,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     int howMany = 1000;
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < 39; i++) {
       Document doc = new Document();
@@ -326,7 +326,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", StringField.TYPE));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
@@ -351,7 +351,7 @@
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
     writer.addDocument(doc);
     DirectoryReader reader = writer.getReader();
     AtomicReader r = getOnlySegmentReader(reader);
Index: lucene/core/src/test/org/apache/lucene/index/TestRollback.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestRollback.java	(working copy)
@@ -19,6 +19,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -31,7 +32,8 @@
     RandomIndexWriter rw = new RandomIndexWriter(random(), dir);
     for (int i = 0; i < 5; i++) {
       Document doc = new Document();
-      doc.add(newField("pk", Integer.toString(i), StringField.TYPE_STORED));
+      doc.add(newField("pk", Integer.toString(i), StringField.TYPE));
+      doc.add(newField("pk", Integer.toString(i), StoredField.TYPE));
       rw.addDocument(doc);
     }
     rw.close();
@@ -42,8 +44,10 @@
     for (int i = 0; i < 3; i++) {
       Document doc = new Document();
       String value = Integer.toString(i);
-      doc.add(newField("pk", value, StringField.TYPE_STORED));
-      doc.add(newField("text", "foo", StringField.TYPE_STORED));
+      doc.add(newField("pk", value, StringField.TYPE));
+      doc.add(newField("pk", value, StoredField.TYPE));
+      doc.add(newField("text", "foo", StringField.TYPE));
+      doc.add(newField("text", "foo", StoredField.TYPE));
       w.updateDocument(new Term("pk", value), doc);
     }
     w.rollback();
Index: lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java	(working copy)
@@ -99,7 +99,7 @@
 
     Document doc = new Document();
     for(int i=0;i<testFields.length;i++) {
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       if (testFieldsStorePos[i] && testFieldsStoreOff[i]) {
         customType.setStoreTermVectors(true);
         customType.setStoreTermVectorPositions(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocumentsWriterPerThread.IndexingChain;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -280,7 +281,8 @@
     IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
     Directory dir = newDirectory();
     Document doc = new Document();
-    doc.add(newField("foo", "bar", TextField.TYPE_STORED));
+    doc.add(newField("foo", "bar", TextField.TYPE));
+    doc.add(newField("foo", "bar", StoredField.TYPE));
     RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
     riw.addDocument(doc);
     riw.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCodecs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestCodecs.java	(working copy)
@@ -352,7 +352,7 @@
       pq.add(new Term("content", "ccc"));
 
       final Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setOmitNorms(true);
       doc.add(newField("content", "aaa bbb ccc ddd", customType));
 
Index: lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java	(working copy)
@@ -23,6 +23,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.MockDirectoryWrapper;
@@ -60,8 +61,10 @@
               int docCount = 0;
               while (System.currentTimeMillis() < stopTime) {
                 final Document doc = new Document();
-                doc.add(newField("dc", ""+docCount, StringField.TYPE_STORED));
-                doc.add(newField("field", "here is some text", TextField.TYPE_STORED));
+                doc.add(newField("dc", ""+docCount, StringField.TYPE));
+                doc.add(newField("dc", ""+docCount, StoredField.TYPE));
+                doc.add(newField("field", "here is some text", TextField.TYPE));
+                doc.add(newField("field", "here is some text", StoredField.TYPE));
                 w.addDocument(doc);
 
                 if (docCount % 13 == 0) {
Index: lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java	(working copy)
@@ -52,7 +52,7 @@
     Directory dir = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     field.setStringValue("a b c");
     w.addDocument(doc);
@@ -137,7 +137,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
@@ -234,7 +234,7 @@
       }
       for(int ord : ordsForDocSet) {
         ordsForDoc[upto++] = ord;
-        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE_UNSTORED);
+        Field field = newField("field", termsArray[ord].utf8ToString(), StringField.TYPE);
         if (VERBOSE) {
           System.out.println("  f=" + termsArray[ord].utf8ToString());
         }
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java	(working copy)
@@ -29,6 +29,7 @@
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.IndexSearcher;
@@ -58,10 +59,12 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StringField.TYPE));
+      doc.add(newField("id", keywords[i], StoredField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredField.TYPE));
       modifier.addDocument(doc);
     }
     modifier.forceMerge(1);
@@ -383,9 +386,10 @@
   private void updateDoc(IndexWriter modifier, int id, int value)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", String.valueOf(id), StringField.TYPE_STORED));
-    doc.add(newField("value", String.valueOf(value), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StringField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StoredField.TYPE));
+    doc.add(newField("value", String.valueOf(value), StringField.TYPE));
     modifier.updateDocument(new Term("id", String.valueOf(id)), doc);
   }
 
@@ -393,9 +397,10 @@
   private void addDoc(IndexWriter modifier, int id, int value)
       throws IOException {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", String.valueOf(id), StringField.TYPE_STORED));
-    doc.add(newField("value", String.valueOf(value), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StringField.TYPE));
+    doc.add(newField("id", String.valueOf(id), StoredField.TYPE));
+    doc.add(newField("value", String.valueOf(value), StringField.TYPE));
     modifier.addDocument(doc);
   }
 
@@ -432,8 +437,9 @@
     IndexWriter writer = new IndexWriter(startDir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     for (int i = 0; i < 157; i++) {
       Document d = new Document();
-      d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-      d.add(newField("content", "aaa " + i, TextField.TYPE_UNSTORED));
+      d.add(newField("id", Integer.toString(i), StringField.TYPE));
+      d.add(newField("id", Integer.toString(i), StoredField.TYPE));
+      d.add(newField("content", "aaa " + i, TextField.TYPE));
       writer.addDocument(d);
     }
     writer.close();
@@ -510,8 +516,9 @@
             for (int i = 0; i < 13; i++) {
               if (updates) {
                 Document d = new Document();
-                d.add(newField("id", Integer.toString(i), StringField.TYPE_STORED));
-                d.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+                d.add(newField("id", Integer.toString(i), StringField.TYPE));
+                d.add(newField("id", Integer.toString(i), StoredField.TYPE));
+                d.add(newField("content", "bbb " + i, TextField.TYPE));
                 modifier.updateDocument(new Term("id", Integer.toString(docId)), d);
               } else { // deletes
                 modifier.deleteDocuments(new Term("id", Integer.toString(docId)));
@@ -702,10 +709,12 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StringField.TYPE));
+      doc.add(newField("id", keywords[i], StoredField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredField.TYPE));
       modifier.addDocument(doc);
     }
     // flush (and commit if ac)
@@ -823,10 +832,12 @@
     custom1.setStored(true);
     for (int i = 0; i < keywords.length; i++) {
       Document doc = new Document();
-      doc.add(newField("id", keywords[i], StringField.TYPE_STORED));
+      doc.add(newField("id", keywords[i], StringField.TYPE));
+      doc.add(newField("id", keywords[i], StoredField.TYPE));
       doc.add(newField("country", unindexed[i], custom1));
-      doc.add(newField("contents", unstored[i], TextField.TYPE_UNSTORED));
-      doc.add(newField("city", text[i], TextField.TYPE_STORED));
+      doc.add(newField("contents", unstored[i], TextField.TYPE));
+      doc.add(newField("city", text[i], TextField.TYPE));
+      doc.add(newField("city", text[i], StoredField.TYPE));
       try {
         modifier.addDocument(doc);
       } catch (IOException io) {
@@ -869,7 +880,7 @@
     Collections.shuffle(ids, random());
     for(int id : ids) {
       Document doc = new Document();
-      doc.add(newField("id", ""+id, StringField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+id, StringField.TYPE));
       w.addDocument(doc);
     }
     Collections.shuffle(ids, random());
@@ -905,7 +916,7 @@
     };
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, analyzer).setRAMBufferSizeMB(1.0).setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH).setMaxBufferedDeleteTerms(IndexWriterConfig.DISABLE_AUTO_FLUSH));
     Document doc = new Document();
-    doc.add(newField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", TextField.TYPE));
     int num = atLeast(3);
     for (int iter = 0; iter < num; iter++) {
       int count = 0;
@@ -1050,8 +1061,8 @@
         w.deleteDocuments(new Term("id", "0"));
       }
       Document doc = new Document();
-      doc.add(newField("id", ""+id, StringField.TYPE_UNSTORED));
-      doc.add(newField("body", sb.toString(), TextField.TYPE_UNSTORED));
+      doc.add(newField("id", ""+id, StringField.TYPE));
+      doc.add(newField("body", sb.toString(), TextField.TYPE));
       w.updateDocument(new Term("id", ""+id), doc);
       docsInSegment.incrementAndGet();
       // TODO: fix this test
Index: lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java	(working copy)
@@ -309,7 +309,8 @@
     FieldType onlyStored = new FieldType();
     onlyStored.setStored(true);
     doc.add(new Field("field", "value", onlyStored));
-    doc.add(new Field("field2", "value", StringField.TYPE_STORED));
+    doc.add(new Field("field2", "value", StringField.TYPE));
+    doc.add(new Field("field2", "value", StoredField.TYPE));
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermdocPerf.java	(working copy)
@@ -87,7 +87,7 @@
 
     Document doc = new Document();
     
-    doc.add(newField(field,val, StringField.TYPE_UNSTORED));
+    doc.add(newField(field,val, StringField.TYPE));
     IndexWriter writer = new IndexWriter(
         dir,
         newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).
Index: lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java	(working copy)
@@ -34,6 +34,7 @@
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.ShortDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
@@ -46,9 +47,9 @@
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BytesRefHash;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.junit.Before;
 
 /**
@@ -125,7 +126,8 @@
     Directory d1 = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d1);
     Document doc = new Document();
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("id", "1", StringField.TYPE));
+    doc.add(newField("id", "1", StoredField.TYPE));
     doc.add(new PackedLongDocValuesField("dv", 1));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
@@ -134,7 +136,8 @@
     Directory d2 = newDirectory();
     w = new RandomIndexWriter(random(), d2);
     doc = new Document();
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("id", "2", StringField.TYPE));
+    doc.add(newField("id", "2", StoredField.TYPE));
     doc.add(new PackedLongDocValuesField("dv", 2));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
@@ -704,7 +707,8 @@
         }
       }
       doc.removeFields("id");
-      doc.add(new Field("id", idBase + i, StringField.TYPE_STORED));
+      doc.add(new Field("id", idBase + i, StringField.TYPE));
+      doc.add(new Field("id", idBase + i, StoredField.TYPE));
       w.addDocument(doc);
 
       if (i % 7 == 0) {
@@ -800,7 +804,8 @@
       int len = 1 + random().nextInt(50);
       for (int i = 0; i < numDocs; i++) {
         Document doc = new Document();
-        doc.add(newField("id", "" + i, TextField.TYPE_STORED));
+        doc.add(newField("id", "" + i, TextField.TYPE));
+        doc.add(newField("id", "" + i, StoredField.TYPE));
         String string = fixed ? _TestUtil.randomFixedByteLengthUnicodeString(random(),
             len) : _TestUtil.randomRealisticUnicodeString(random(), 1, len);
         BytesRef br = new BytesRef(string);
@@ -815,7 +820,8 @@
       int numDocsNoValue = atLeast(10);
       for (int i = 0; i < numDocsNoValue; i++) {
         Document doc = new Document();
-        doc.add(newField("id", "noValue", TextField.TYPE_STORED));
+        doc.add(newField("id", "noValue", TextField.TYPE));
+        doc.add(newField("id", "noValue", StoredField.TYPE));
         w.addDocument(doc);
       }
       BytesRef bytesRef = new BytesRef(fixed ? len : 0);
@@ -828,7 +834,8 @@
       for (int i = 0; i < numDocs; i++) {
         Document doc = new Document();
         String id = "" + i + numDocs;
-        doc.add(newField("id", id, TextField.TYPE_STORED));
+        doc.add(newField("id", id, TextField.TYPE));
+        doc.add(newField("id", id, StoredField.TYPE));
         String string = fixed ? _TestUtil.randomFixedByteLengthUnicodeString(random(),
             len) : _TestUtil.randomRealisticUnicodeString(random(), 1, len);
         BytesRef br = new BytesRef(string);
Index: lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java	(working copy)
@@ -178,7 +178,7 @@
       Document doc = new Document();
       final MyTokenStream ts = new MyTokenStream(random(), TERMS_PER_DOC);
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setIndexOptions(IndexOptions.DOCS_ONLY);
       customType.setOmitNorms(true);
       Field field = new Field("field", ts, customType);
Index: lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestConsistentFieldNumbers.java	(working copy)
@@ -43,8 +43,10 @@
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
       Document d1 = new Document();
-      d1.add(new Field("f1", "first field", StringField.TYPE_STORED));
-      d1.add(new Field("f2", "second field", StringField.TYPE_STORED));
+      d1.add(new Field("f1", "first field", StringField.TYPE));
+      d1.add(new Field("f1", "first field", StoredField.TYPE));
+      d1.add(new Field("f2", "second field", StringField.TYPE));
+      d1.add(new Field("f2", "second field", StoredField.TYPE));
       writer.addDocument(d1);
 
       if (i == 1) {
@@ -55,7 +57,8 @@
       }
 
       Document d2 = new Document();
-      FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType2 = new FieldType(TextField.TYPE);
+      customType2.setStored(true);
       customType2.setStoreTermVectors(true);
       d2.add(new TextField("f2", "second field"));
       d2.add(new Field("f1", "first field", customType2));
@@ -106,20 +109,26 @@
     IndexWriter writer = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
     Document d1 = new Document();
-    d1.add(new Field("f1", "first field", TextField.TYPE_STORED));
-    d1.add(new Field("f2", "second field", TextField.TYPE_STORED));
+    d1.add(new Field("f1", "first field", TextField.TYPE));
+    d1.add(new Field("f1", "first field", StoredField.TYPE));
+    d1.add(new Field("f2", "second field", TextField.TYPE));
+    d1.add(new Field("f2", "second field", StoredField.TYPE));
     writer.addDocument(d1);
 
     writer.close();
     writer = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.COMPOUND_FILES));
 
     Document d2 = new Document();
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setStoreTermVectors(true);
-    d2.add(new Field("f2", "second field", TextField.TYPE_STORED));
+    d2.add(new Field("f2", "second field", TextField.TYPE));
+    d2.add(new Field("f2", "second field", StoredField.TYPE));
     d2.add(new Field("f1", "first field", customType2));
-    d2.add(new Field("f3", "third field", TextField.TYPE_STORED));
-    d2.add(new Field("f4", "fourth field", TextField.TYPE_STORED));
+    d2.add(new Field("f3", "third field", TextField.TYPE));
+    d2.add(new Field("f3", "third field", StoredField.TYPE));
+    d2.add(new Field("f4", "fourth field", TextField.TYPE));
+    d2.add(new Field("f4", "fourth field", StoredField.TYPE));
     writer.addDocument(d2);
 
     writer.close();
@@ -156,8 +165,10 @@
             TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(
             NoMergePolicy.NO_COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d1 first field", TextField.TYPE_STORED));
-        d.add(new Field("f2", "d1 second field", TextField.TYPE_STORED));
+        d.add(new Field("f1", "d1 first field", TextField.TYPE));
+        d.add(new Field("f1", "d1 first field", StoredField.TYPE));
+        d.add(new Field("f2", "d1 second field", TextField.TYPE));
+        d.add(new Field("f2", "d1 second field", StoredField.TYPE));
         writer.addDocument(d);
         writer.close();
         SegmentInfos sis = new SegmentInfos();
@@ -175,7 +186,8 @@
             random().nextBoolean() ? NoMergePolicy.NO_COMPOUND_FILES
                 : NoMergePolicy.COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d2 first field", TextField.TYPE_STORED));
+        d.add(new Field("f1", "d2 first field", TextField.TYPE));
+        d.add(new Field("f1", "d2 first field", StoredField.TYPE));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3 }));
         writer.addDocument(d);
         writer.close();
@@ -197,8 +209,10 @@
             random().nextBoolean() ? NoMergePolicy.NO_COMPOUND_FILES
                 : NoMergePolicy.COMPOUND_FILES));
         Document d = new Document();
-        d.add(new Field("f1", "d3 first field", TextField.TYPE_STORED));
-        d.add(new Field("f2", "d3 second field", TextField.TYPE_STORED));
+        d.add(new Field("f1", "d3 first field", TextField.TYPE));
+        d.add(new Field("f1", "d3 first field", StoredField.TYPE));
+        d.add(new Field("f2", "d3 second field", TextField.TYPE));
+        d.add(new Field("f2", "d3 second field", StoredField.TYPE));
         d.add(new StoredField("f3", new byte[] { 1, 2, 3, 4, 5 }));
         writer.addDocument(d);
         writer.close();
@@ -292,69 +306,76 @@
   private Field getField(int number) {
     int mode = number % 16;
     String fieldName = "" + number;
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setTokenized(false);
     
-    FieldType customType3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType3 = new FieldType(TextField.TYPE);
     customType3.setTokenized(false);
     
-    FieldType customType4 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType4 = new FieldType(TextField.TYPE);
     customType4.setTokenized(false);
     customType4.setStoreTermVectors(true);
     customType4.setStoreTermVectorOffsets(true);
     
-    FieldType customType5 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType5 = new FieldType(TextField.TYPE);
     customType5.setStoreTermVectors(true);
     customType5.setStoreTermVectorOffsets(true);
 
-    FieldType customType6 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType6 = new FieldType(TextField.TYPE);
+    customType6.setStored(true);
     customType6.setTokenized(false);
     customType6.setStoreTermVectors(true);
     customType6.setStoreTermVectorOffsets(true);
 
-    FieldType customType7 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType7 = new FieldType(TextField.TYPE);
     customType7.setTokenized(false);
     customType7.setStoreTermVectors(true);
     customType7.setStoreTermVectorOffsets(true);
 
-    FieldType customType8 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType8 = new FieldType(TextField.TYPE);
+    customType8.setStored(true);
     customType8.setTokenized(false);
     customType8.setStoreTermVectors(true);
     customType8.setStoreTermVectorPositions(true);
 
-    FieldType customType9 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType9 = new FieldType(TextField.TYPE);
     customType9.setStoreTermVectors(true);
     customType9.setStoreTermVectorPositions(true);
 
-    FieldType customType10 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType10 = new FieldType(TextField.TYPE);
+    customType10.setStored(true);
     customType10.setTokenized(false);
     customType10.setStoreTermVectors(true);
     customType10.setStoreTermVectorPositions(true);
 
-    FieldType customType11 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType11 = new FieldType(TextField.TYPE);
     customType11.setTokenized(false);
     customType11.setStoreTermVectors(true);
     customType11.setStoreTermVectorPositions(true);
 
-    FieldType customType12 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType12 = new FieldType(TextField.TYPE);
+    customType12.setStored(true);
     customType12.setStoreTermVectors(true);
     customType12.setStoreTermVectorOffsets(true);
     customType12.setStoreTermVectorPositions(true);
 
-    FieldType customType13 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType13 = new FieldType(TextField.TYPE);
     customType13.setStoreTermVectors(true);
     customType13.setStoreTermVectorOffsets(true);
     customType13.setStoreTermVectorPositions(true);
 
-    FieldType customType14 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType14 = new FieldType(TextField.TYPE);
+    customType14.setStored(true);
     customType14.setTokenized(false);
     customType14.setStoreTermVectors(true);
     customType14.setStoreTermVectorOffsets(true);
     customType14.setStoreTermVectorPositions(true);
 
-    FieldType customType15 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType15 = new FieldType(TextField.TYPE);
     customType15.setTokenized(false);
     customType15.setStoreTermVectors(true);
     customType15.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java	(working copy)
@@ -42,7 +42,7 @@
         .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));
     
     Document doc = new Document();
-    Field field = newField("field", "", StringField.TYPE_UNSTORED);
+    Field field = newField("field", "", StringField.TYPE);
     doc.add(field);
 
     // we generate aweful prefixes: good for testing.
Index: lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java	(working copy)
@@ -61,7 +61,7 @@
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
     Document doc = new Document();
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setIndexOptions(FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
     if (random().nextBoolean()) {
       ft.setStoreTermVectors(true);
@@ -129,7 +129,8 @@
     iwc.setMergePolicy(newLogMergePolicy()); // will rely on docids a bit for skipping
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc);
     
-    FieldType ft = new FieldType(TextField.TYPE_STORED);
+    FieldType ft = new FieldType(TextField.TYPE);
+    ft.setStored(true);
     ft.setIndexOptions(FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
     if (random().nextBoolean()) {
       ft.setStoreTermVectors(true);
@@ -224,7 +225,7 @@
     final int numDocs = atLeast(20);
     //final int numDocs = atLeast(5);
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
 
     // TODO: randomize what IndexOptions we use; also test
     // changing this up in one IW buffered segment...:
@@ -361,7 +362,8 @@
         ft.setStored(true);
         doc.add(new Field("foo", "boo!", ft));
       } else {
-        FieldType ft = new FieldType(TextField.TYPE_STORED);
+        FieldType ft = new FieldType(TextField.TYPE);
+        ft.setStored(true);
         ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
         if (random().nextBoolean()) {
           // store some term vectors for the checkindex cross-check
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java	(working copy)
@@ -138,12 +138,12 @@
     );
     TokenStream payloadTS1 = new PayloadTokenStream("p1");
     TokenStream payloadTS2 = new PayloadTokenStream("p2");
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     for (int i = 0; i < NUM_DOCS; i++) {
       Document doc = new Document();
       doc.add(newField("id", "doc" + i, customType));
-      doc.add(newField("content", "doc content " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "doc content " + i, TextField.TYPE));
       doc.add(new TextField("p", payloadTS1));
       doc.add(new TextField("p", payloadTS2));
       writer.addDocument(doc);
Index: lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIsCurrent.java	(working copy)
@@ -17,15 +17,15 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.store.*;
 import org.apache.lucene.util.*;
-import org.apache.lucene.store.*;
-
 import org.junit.Test;
 
-import java.io.IOException;
-
 public class TestIsCurrent extends LuceneTestCase {
 
   private RandomIndexWriter writer;
@@ -42,7 +42,8 @@
 
     // write document
     Document doc = new Document();
-    doc.add(newField("UUID", "1", TextField.TYPE_STORED));
+    doc.add(newField("UUID", "1", TextField.TYPE));
+    doc.add(newField("UUID", "1", StoredField.TYPE));
     writer.addDocument(doc);
     writer.commit();
   }
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermEnum.java	(working copy)
@@ -135,7 +135,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+    doc.add(newField("content", value, TextField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.Source;
 import org.apache.lucene.index.DocValues.Type;
@@ -31,8 +32,8 @@
 import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LineFileDocs;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 /**
  * 
@@ -55,12 +56,13 @@
     for (int i = 0; i < num; i++) {
       Document doc = docs.nextDoc();
       float nextFloat = random().nextFloat();
-      Field f = new Field(floatTestField, "" + nextFloat, TextField.TYPE_STORED);
+      Field f = new Field(floatTestField, "" + nextFloat, TextField.TYPE);
       f.setBoost(nextFloat);
 
       doc.add(f);
+      doc.add(new StoredField(floatTestField, "" + nextFloat));
       writer.addDocument(doc);
-      doc.removeField(floatTestField);
+      doc.removeFields(floatTestField);
       if (rarely()) {
         writer.commit();
       }
@@ -97,11 +99,11 @@
       for (int i = 0; i < num; i++) {
         Document doc = docs.nextDoc();
         float nextFloat = random().nextFloat();
-        Field f = new Field(exceptionTestField, "" + nextFloat,
-            TextField.TYPE_STORED);
+        Field f = new Field(exceptionTestField, "" + nextFloat, TextField.TYPE);
         f.setBoost(nextFloat);
 
         doc.add(f);
+        doc.add(new StoredField(exceptionTestField, "" + nextFloat));
         writer.addDocument(doc);
         doc.removeField(exceptionTestField);
         if (rarely()) {
Index: lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java	(working copy)
@@ -60,7 +60,7 @@
     }
 
     Document doc = new Document();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     ft.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field field = new Field("field", new MyTokenStream(), ft);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java	(working copy)
@@ -25,6 +25,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -194,7 +195,9 @@
               assert fieldUpto < fieldCount;
               if (fieldUpto == 0) {
                 fieldUpto = 1;
-                return newField("id", ""+finalDocCount, StringField.TYPE_STORED);
+                FieldType storedStringType = new FieldType(StringField.TYPE);
+                storedStringType.setStored(true);
+                return newField("id", ""+finalDocCount, storedStringType);
               } else {
                 return new MyField(finalBaseCount + (fieldUpto++-1));
               }
Index: lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestSegmentTermDocs.java	(working copy)
@@ -280,7 +280,7 @@
   private void addDoc(IndexWriter writer, String value) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", value, TextField.TYPE_UNSTORED));
+      doc.add(newField("content", value, TextField.TYPE));
       writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestCheckIndex.java	(working copy)
@@ -38,7 +38,8 @@
     IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     for(int i=0;i<19;i++) {
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
Index: lucene/core/src/test/org/apache/lucene/index/TestTransactions.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTransactions.java	(working copy)
@@ -148,13 +148,13 @@
 
     public void update(IndexWriter writer) throws IOException {
       // Add 10 docs:
-      FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(StringField.TYPE);
       customType.setStoreTermVectors(true);
       for(int j=0; j<10; j++) {
         Document d = new Document();
         int n = random().nextInt();
         d.add(newField("id", Integer.toString(nextID++), customType));
-        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+        d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
         writer.addDocument(d);
       }
 
@@ -198,7 +198,7 @@
     for(int j=0; j<7; j++) {
       Document d = new Document();
       int n = random().nextInt();
-      d.add(newField("contents", English.intToEnglish(n), TextField.TYPE_UNSTORED));
+      d.add(newField("contents", English.intToEnglish(n), TextField.TYPE));
       writer.addDocument(d);
     }
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java	(working copy)
@@ -27,6 +27,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
@@ -119,8 +120,10 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
 
     Document doc = new Document();
-    doc.add(newField("repeated", "repeated one", TextField.TYPE_STORED));
-    doc.add(newField("repeated", "repeated two", TextField.TYPE_STORED));
+    doc.add(newField("repeated", "repeated one", TextField.TYPE));
+    doc.add(newField("repeated", "repeated one", StoredField.TYPE));
+    doc.add(newField("repeated", "repeated two", TextField.TYPE));
+    doc.add(newField("repeated", "repeated two", StoredField.TYPE));
 
     writer.addDocument(doc);
     writer.commit();
@@ -192,7 +195,8 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
 
     Document doc = new Document();
-    doc.add(newField("f1", "a 5 a a", TextField.TYPE_STORED));
+    doc.add(newField("f1", "a 5 a a", TextField.TYPE));
+    doc.add(newField("f1", "a 5 a a", StoredField.TYPE));
 
     writer.addDocument(doc);
     writer.commit();
@@ -269,15 +273,18 @@
   public void testMixedTermVectorSettingsSameField() throws Exception {
     Document doc = new Document();
     // f1 first without tv then with tv
-    doc.add(newField("f1", "v1", StringField.TYPE_STORED));
-    FieldType customType2 = new FieldType(StringField.TYPE_STORED);
+    doc.add(newField("f1", "v1", StringField.TYPE));
+    doc.add(newField("f1", "v1", StoredField.TYPE));
+    FieldType customType2 = new FieldType(StringField.TYPE);
+    customType2.setStored(true);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorOffsets(true);
     customType2.setStoreTermVectorPositions(true);
     doc.add(newField("f1", "v2", customType2));
     // f2 first with tv then without tv
     doc.add(newField("f2", "v1", customType2));
-    doc.add(newField("f2", "v2", StringField.TYPE_STORED));
+    doc.add(newField("f2", "v2", StringField.TYPE));
+    doc.add(newField("f2", "v2", StoredField.TYPE));
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
@@ -306,14 +313,14 @@
   public void testLUCENE_1590() throws Exception {
     Document doc = new Document();
     // f1 has no norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     FieldType customType2 = new FieldType();
     customType2.setStored(true);
     doc.add(newField("f1", "v1", customType));
     doc.add(newField("f1", "v2", customType2));
     // f2 has no TF
-    FieldType customType3 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType3 = new FieldType(TextField.TYPE);
     customType3.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field f = newField("f2", "v1", customType3);
     doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java	(working copy)
@@ -137,7 +137,7 @@
    */
   private Document getDocument() {
     Document document = new Document();
-    document.add(newField(TEXT_FIELD, "my dog has fleas", TextField.TYPE_UNSTORED));
+    document.add(newField(TEXT_FIELD, "my dog has fleas", TextField.TYPE));
     return document;
   }
     
Index: lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestMaxTermFrequency.java	(working copy)
@@ -50,7 +50,7 @@
     config.setSimilarity(new TestSimilarity());
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
     Document doc = new Document();
-    Field foo = newField("foo", "", TextField.TYPE_UNSTORED);
+    Field foo = newField("foo", "", TextField.TYPE);
     doc.add(foo);
     for (int i = 0; i < 100; i++) {
       foo.setStringValue(addValue());
Index: lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java	(working copy)
@@ -21,8 +21,10 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -73,7 +75,8 @@
         .setIndexDeletionPolicy(NoDeletionPolicy.INSTANCE));
     for (int i = 0; i < 10; i++) {
       Document doc = new Document();
-      doc.add(newField("c", "a" + i, TextField.TYPE_STORED));
+      doc.add(newField("c", "a" + i, TextField.TYPE));
+      doc.add(newField("c", "a" + i, StoredField.TYPE));
       writer.addDocument(doc);
       writer.commit();
       assertEquals("wrong number of commits !", i + 1, DirectoryReader.listCommits(dir).size());
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java	(working copy)
@@ -29,6 +29,7 @@
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -145,7 +146,8 @@
     
     Document newDoc = r1.document(10);
     newDoc.removeField("id");
-    newDoc.add(newField("id", Integer.toString(8000), StringField.TYPE_STORED));
+    newDoc.add(newField("id", Integer.toString(8000), StringField.TYPE));
+    newDoc.add(newField("id", Integer.toString(8000), StoredField.TYPE));
     writer.updateDocument(new Term("id", id10), newDoc);
     assertFalse(r1.isCurrent());
 
@@ -169,7 +171,7 @@
 
     writer = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     assertTrue(r2.isCurrent());
     assertTrue(r3.isCurrent());
@@ -191,14 +193,14 @@
     
     IndexWriter writer = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     
     iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
     writer = new IndexWriter(dir, iwc);
     doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "a b c", TextField.TYPE));
     DirectoryReader nrtReader = writer.getReader();
     assertTrue(nrtReader.isCurrent());
     writer.addDocument(doc);
@@ -877,8 +879,8 @@
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
+    doc.add(newField("field", "a b c", TextField.TYPE));
+    Field id = newField("id", "", StringField.TYPE);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -901,8 +903,8 @@
     Directory dir = newDirectory();
     final IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("field", "a b c", TextField.TYPE_UNSTORED));
-    Field id = newField("id", "", StringField.TYPE_UNSTORED);
+    doc.add(newField("field", "a b c", TextField.TYPE));
+    Field id = newField("id", "", StringField.TYPE);
     doc.add(id);
     id.setStringValue("0");
     w.addDocument(doc);
@@ -958,7 +960,7 @@
     );
 
     Document doc = new Document();
-    doc.add(newField("foo", "bar", StringField.TYPE_UNSTORED));
+    doc.add(newField("foo", "bar", StringField.TYPE));
     for(int i=0;i<20;i++) {
       w.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java	(working copy)
@@ -39,11 +39,11 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -57,7 +57,7 @@
     // Reverse
     d.add(newField("f1", "This field has norms", customType));
         
-    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE_UNSTORED));
+    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE));
         
     writer.addDocument(d);
 
@@ -89,11 +89,11 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -109,7 +109,7 @@
     // Reverese
     d.add(newField("f1", "This field has norms", customType));
         
-    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE_UNSTORED));
+    d.add(newField("f2", "This field has NO norms in all docs", TextField.TYPE));
         
     for (int i = 0; i < 30; i++) {
       writer.addDocument(d);
@@ -144,12 +144,12 @@
     Document d = new Document();
         
     // this field will have norms
-    Field f1 = newField("f1", "This field has norms", TextField.TYPE_UNSTORED);
+    Field f1 = newField("f1", "This field has norms", TextField.TYPE);
     d.add(f1);
        
     // this field will NOT have norms
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f2 = newField("f2", "This field has NO norms in all docs", customType);
     d.add(f2);
@@ -196,7 +196,7 @@
     lmp.setUseCompoundFile(false);
     Document d = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setOmitNorms(true);
     Field f1 = newField("f1", "This field has no norms", customType);
     d.add(f1);
@@ -226,10 +226,12 @@
    */
   public void testOmitNormsCombos() throws IOException {
     // indexed with norms
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     Field norms = new Field("foo", "a", customType);
     // indexed without norms
-    FieldType customType1 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType1 = new FieldType(TextField.TYPE);
+    customType1.setStored(true);
     customType1.setOmitNorms(true);
     Field noNorms = new Field("foo", "a", customType1);
     // not indexed, but stored
Index: lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java	(working copy)
@@ -46,6 +46,7 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.PackedLongDocValuesField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -179,8 +180,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     // Deletes one of the 10 added docs, leaving 9:
@@ -214,8 +215,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
     
@@ -252,8 +253,8 @@
     // docs, so 10 pending deletes:
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + (i % 10), StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "bbb " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + (i % 10), StringField.TYPE));
+      doc.add(newField("content", "bbb " + i, TextField.TYPE));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
 
@@ -527,7 +528,7 @@
   private void addDocs(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -535,7 +536,7 @@
   private void addDocs2(IndexWriter writer, int numDocs) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "bbb", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "bbb", TextField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -616,7 +617,8 @@
         .setMaxBufferedDocs(5).setMergePolicy(lmp));
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -654,7 +656,7 @@
   private void addDoc(IndexWriter writer) throws IOException
   {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
       writer.addDocument(doc);
   }
   
@@ -1004,8 +1006,9 @@
   private void addDocsWithID(IndexWriter writer, int numDocs, int docStart) throws IOException {
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-      doc.add(newField("id", "" + (docStart + i), TextField.TYPE_STORED));
+      doc.add(newField("content", "aaa", TextField.TYPE));
+      doc.add(newField("id", "" + (docStart + i), TextField.TYPE));
+      doc.add(newField("id", "" + (docStart + i), StoredField.TYPE));
       writer.addDocument(doc);
     }
   }
@@ -1096,7 +1099,8 @@
       dirs[i] = new RAMDirectory();
       IndexWriter w = new IndexWriter(dirs[i], new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document d = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       d.add(new Field("c", "v", customType));
       w.addDocument(d);
@@ -1219,8 +1223,10 @@
     Directory d1 = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), d1);
     Document doc = new Document();
-    doc.add(newField("f1", "doc1 field1", StringField.TYPE_STORED));
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("f1", "doc1 field1", StringField.TYPE));
+    doc.add(newField("f1", "doc1 field1", StoredField.TYPE));
+    doc.add(newField("id", "1", StringField.TYPE));
+    doc.add(newField("id", "1", StoredField.TYPE));
     w.addDocument(doc);
     IndexReader r1 = w.getReader();
     w.close();
@@ -1228,8 +1234,10 @@
     Directory d2 = newDirectory();
     w = new RandomIndexWriter(random(), d2);
     doc = new Document();
-    doc.add(newField("f2", "doc2 field2", StringField.TYPE_STORED));
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("f2", "doc2 field2", StringField.TYPE));
+    doc.add(newField("f2", "doc2 field2", StoredField.TYPE));
+    doc.add(newField("id", "2", StringField.TYPE));
+    doc.add(newField("id", "2", StoredField.TYPE));
     w.addDocument(doc);
     IndexReader r2 = w.getReader();
     w.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestPayloads.java	(working copy)
@@ -26,16 +26,17 @@
 import java.util.Map;
 
 import org.apache.lucene.analysis.*;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -96,15 +97,15 @@
         IndexWriter writer = new IndexWriter(ram, newIndexWriterConfig( TEST_VERSION_CURRENT, analyzer));
         Document d = new Document();
         // this field won't have any payloads
-        d.add(newField("f1", "This field has no payloads", TextField.TYPE_UNSTORED));
+        d.add(newField("f1", "This field has no payloads", TextField.TYPE));
         // this field will have payloads in all docs, however not for all term positions,
         // so this field is used to check if the DocumentWriter correctly enables the payloads bit
         // even if only some term positions have payloads
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs NO PAYLOAD", TextField.TYPE_UNSTORED));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs NO PAYLOAD", TextField.TYPE));
         // this field is used to verify if the SegmentMerger enables payloads for a field if it has payloads 
         // enabled in only some documents
-        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE_UNSTORED));
+        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE));
         // only add payload data for field f2
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         writer.addDocument(d);
@@ -124,10 +125,10 @@
         writer = new IndexWriter(ram, newIndexWriterConfig( TEST_VERSION_CURRENT,
             analyzer).setOpenMode(OpenMode.CREATE));
         d = new Document();
-        d.add(newField("f1", "This field has no payloads", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE_UNSTORED));
-        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE_UNSTORED));
+        d.add(newField("f1", "This field has no payloads", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f2", "This field has payloads in all docs", TextField.TYPE));
+        d.add(newField("f3", "This field has payloads in some docs", TextField.TYPE));
         // add payload data for field f2 and f3
         analyzer.setPayloadData("f2", "somedata".getBytes(), 0, 1);
         analyzer.setPayloadData("f3", "somedata".getBytes(), 0, 3);
@@ -184,7 +185,7 @@
         byte[] payloadData = generateRandomData(payloadDataLength);
         
         Document d = new Document();
-        d.add(newField(fieldName, content, TextField.TYPE_UNSTORED));
+        d.add(newField(fieldName, content, TextField.TYPE));
         // add the same document multiple times to have the same payload lengths for all
         // occurrences within two consecutive skip intervals
         int offset = 0;
@@ -318,7 +319,7 @@
         String singleTerm = "lucene";
         
         d = new Document();
-        d.add(newField(fieldName, singleTerm, TextField.TYPE_UNSTORED));
+        d.add(newField(fieldName, singleTerm, TextField.TYPE));
         // add a payload whose length is greater than the buffer size of BufferedIndexOutput
         payloadData = generateRandomData(2000);
         analyzer.setPayloadData(fieldName, payloadData, 100, 1500);
@@ -615,14 +616,16 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir,
                                                      new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true));
     Document doc = new Document();
-    doc.add(new Field("hasMaybepayload", "here we go", TextField.TYPE_STORED));
+    doc.add(new Field("hasMaybepayload", "here we go", TextField.TYPE));
+    doc.add(new Field("hasMaybepayload", "here we go", StoredField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
     writer = new RandomIndexWriter(random(), dir,
                                    new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true));
     doc = new Document();
-    doc.add(new Field("hasMaybepayload2", "here we go", TextField.TYPE_STORED));
+    doc.add(new Field("hasMaybepayload2", "here we go", TextField.TYPE));
+    doc.add(new Field("hasMaybepayload2", "here we go", StoredField.TYPE));
     writer.addDocument(doc);
     writer.addDocument(doc);
     writer.forceMerge(1);
Index: lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java	(working copy)
@@ -39,7 +39,7 @@
     IndexWriter w = new IndexWriter(dir, conf);
     for(int i=0;i<80;i++) {
       Document doc = new Document();
-      doc.add(newField("content", "aaa " + (i%4), TextField.TYPE_UNSTORED));
+      doc.add(newField("content", "aaa " + (i%4), TextField.TYPE));
       w.addDocument(doc);
     }
     assertEquals(80, w.maxDoc());
@@ -85,7 +85,7 @@
       final int numDocs = _TestUtil.nextInt(random(), 20, 100);
       for(int i=0;i<numDocs;i++) {
         Document doc = new Document();
-        doc.add(newField("content", "aaa " + (i%4), TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa " + (i%4), TextField.TYPE));
         w.addDocument(doc);
         int count = w.getSegmentCount();
         maxCount = Math.max(count, maxCount);
@@ -121,8 +121,8 @@
     final int numDocs = atLeast(200);
     for(int i=0;i<numDocs;i++) {
       Document doc = new Document();
-      doc.add(newField("id", "" + i, StringField.TYPE_UNSTORED));
-      doc.add(newField("content", "aaa " + i, TextField.TYPE_UNSTORED));
+      doc.add(newField("id", "" + i, StringField.TYPE));
+      doc.add(newField("content", "aaa " + i, TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java	(working copy)
@@ -163,7 +163,7 @@
       System.out.println("TEST: addDoc id:" + id + " terms=" + terms);
     }
     for (String s2 : terms) {
-      doc.add(newField("f", s2, StringField.TYPE_UNSTORED));
+      doc.add(newField("f", s2, StringField.TYPE));
       termToID.put(new BytesRef(s2), id);
     }
     w.addDocument(doc);
@@ -358,7 +358,7 @@
     final RandomIndexWriter w = new RandomIndexWriter(random(), d, iwc);
     for(String term : terms) {
       Document doc = new Document();
-      Field f = newField(FIELD, term, StringField.TYPE_UNSTORED);
+      Field f = newField(FIELD, term, StringField.TYPE);
       doc.add(f);
       w.addDocument(doc);
     }
@@ -497,9 +497,9 @@
     d = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random(), d);
     Document doc = new Document();
-    doc.add(newField("field", "one two three", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "one two three", TextField.TYPE));
     doc = new Document();
-    doc.add(newField("field2", "one two three", TextField.TYPE_UNSTORED));
+    doc.add(newField("field2", "one two three", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
     w.deleteDocuments(new Term("field", "one"));
Index: lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java	(working copy)
@@ -69,7 +69,8 @@
 
       ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(1000);
 
-      final FieldType customType = new FieldType(StringField.TYPE_STORED);
+      final FieldType customType = new FieldType(StringField.TYPE);
+      customType.setStored(true);
       customType.setOmitNorms(true);
       
       for(int i=0;i<200;i++) {
Index: lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java	(working copy)
@@ -121,7 +121,7 @@
 	  for(int idx=0;idx<NUM_DOCS;idx++) {
 	    final Document doc = new Document();
 	    String s = isS1.get(idx) ? s1 : s2;
-	    final Field f = newField("field", s, TextField.TYPE_UNSTORED);
+	    final Field f = newField("field", s, TextField.TYPE);
 	    final int count = _TestUtil.nextInt(random(), 1, 4);
 	    for(int ct=0;ct<count;ct++) {
 	      doc.add(f);
@@ -307,7 +307,7 @@
       iwc.setMaxBufferedDocs(-1);
       final RandomIndexWriter riw = new RandomIndexWriter(random(), dir, iwc);
 
-      FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType ft = new FieldType(TextField.TYPE);
       ft.setIndexOptions(options);
       for(int idx=0;idx<NUM_DOCS;idx++) {
         final Document doc = new Document();
Index: lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java	(working copy)
@@ -34,6 +34,7 @@
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
@@ -50,8 +51,8 @@
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util._TestUtil;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -556,8 +557,10 @@
   {
     Document doc = new Document();
     doc.add(new TextField("content", "aaa"));
-    doc.add(new Field("id", Integer.toString(id), StringField.TYPE_STORED));
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    doc.add(new Field("id", Integer.toString(id), StringField.TYPE));
+    doc.add(new Field("id", Integer.toString(id), StoredField.TYPE));
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -573,7 +576,8 @@
 
   private void addNoProxDoc(IndexWriter writer) throws IOException {
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setIndexOptions(IndexOptions.DOCS_ONLY);
     Field f = new Field("content3", "aaa", customType);
     doc.add(f);
Index: lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressAdvance.java	(working copy)
@@ -37,10 +37,12 @@
       RandomIndexWriter w = new RandomIndexWriter(random(), dir);
       final Set<Integer> aDocs = new HashSet<Integer>();
       final Document doc = new Document();
-      final Field f = newField("field", "", StringField.TYPE_UNSTORED);
+      final Field f = newField("field", "", StringField.TYPE);
       doc.add(f);
-      final Field idField = newField("id", "", StringField.TYPE_STORED);
+      final Field idField = newField("id", "", StringField.TYPE);
+      final Field storedIDField = newField("id", "", StoredField.TYPE);
       doc.add(idField);
+      doc.add(storedIDField);
       int num = atLeast(4097);
       if (VERBOSE) {
         System.out.println("\nTEST: numDocs=" + num);
@@ -53,6 +55,7 @@
           f.setStringValue("b");
         }
         idField.setStringValue(""+id);
+        storedIDField.setStringValue(""+id);
         w.addDocument(doc);
         if (VERBOSE) {
           System.out.println("\nTEST: doc upto " + id);
Index: lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java	(working copy)
@@ -36,7 +36,7 @@
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
       if (withID) {
-        doc.add(new Field("id", "" + i, StringField.TYPE_UNSTORED));
+        doc.add(new Field("id", "" + i, StringField.TYPE));
       }
       writer.addDocument(doc);
     }
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelAtomicReader.java	(working copy)
@@ -22,9 +22,10 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -122,7 +123,8 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d3 = new Document();
 
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", TextField.TYPE));
+    d3.add(newField("f3", "v1", StoredField.TYPE));
     w2.addDocument(d3);
     w2.close();
     
@@ -238,16 +240,24 @@
     dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", TextField.TYPE));
+    d1.add(newField("f1", "v1", StoredField.TYPE));
+    d1.add(newField("f2", "v1", TextField.TYPE));
+    d1.add(newField("f2", "v1", StoredField.TYPE));
+    d1.add(newField("f3", "v1", TextField.TYPE));
+    d1.add(newField("f3", "v1", StoredField.TYPE));
+    d1.add(newField("f4", "v1", TextField.TYPE));
+    d1.add(newField("f4", "v1", StoredField.TYPE));
     w.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", TextField.TYPE));
+    d2.add(newField("f1", "v2", StoredField.TYPE));
+    d2.add(newField("f2", "v2", TextField.TYPE));
+    d2.add(newField("f2", "v2", StoredField.TYPE));
+    d2.add(newField("f3", "v2", TextField.TYPE));
+    d2.add(newField("f3", "v2", StoredField.TYPE));
+    d2.add(newField("f4", "v2", TextField.TYPE));
+    d2.add(newField("f4", "v2", StoredField.TYPE));
     w.addDocument(d2);
     w.close();
 
@@ -269,12 +279,16 @@
     Directory dir1 = newDirectory();
     IndexWriter w1 = new IndexWriter(dir1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", TextField.TYPE));
+    d1.add(newField("f1", "v1", StoredField.TYPE));
+    d1.add(newField("f2", "v1", TextField.TYPE));
+    d1.add(newField("f2", "v1", StoredField.TYPE));
     w1.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", TextField.TYPE));
+    d2.add(newField("f1", "v2", StoredField.TYPE));
+    d2.add(newField("f2", "v2", TextField.TYPE));
+    d2.add(newField("f2", "v2", StoredField.TYPE));
     w1.addDocument(d2);
     w1.close();
     return dir1;
@@ -284,12 +298,16 @@
     Directory dir2 = newDirectory();
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d3 = new Document();
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", TextField.TYPE));
+    d3.add(newField("f3", "v1", StoredField.TYPE));
+    d3.add(newField("f4", "v1", TextField.TYPE));
+    d3.add(newField("f4", "v1", StoredField.TYPE));
     w2.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v2", TextField.TYPE));
+    d4.add(newField("f3", "v2", StoredField.TYPE));
+    d4.add(newField("f4", "v2", TextField.TYPE));
+    d4.add(newField("f4", "v2", StoredField.TYPE));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterNRTIsCurrent.java	(working copy)
@@ -92,7 +92,7 @@
       Random random = LuceneTestCase.random();
       try {
         Document doc = new Document();
-        doc.add(new Field("id", "1", TextField.TYPE_UNSTORED));
+        doc.add(new Field("id", "1", TextField.TYPE));
         writer.addDocument(doc);
         holder.reader = currentReader = writer.getReader(true);
         Term term = new Term("id");
Index: lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java	(working copy)
@@ -33,6 +33,7 @@
 import org.apache.lucene.document.PackedLongDocValuesField;
 import org.apache.lucene.document.ShortDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StraightBytesDocValuesField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DocValues.Source;
@@ -40,8 +41,8 @@
 import org.apache.lucene.store.ByteArrayDataOutput;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 
 @SuppressCodecs("Lucene3x")
 public class TestTypePromotion extends LuceneTestCase {
@@ -228,7 +229,8 @@
 
     for (int i = offset; i < offset + num; i++) {
       Document doc = new Document();
-      doc.add(new Field("id", i + "", TextField.TYPE_STORED));
+      doc.add(new Field("id", i + "", TextField.TYPE));
+      doc.add(new Field("id", i + "", StoredField.TYPE));
       switch (valueType) {
       case VAR_INTS:
         // TODO: can we do nextLong()?
Index: lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java	(working copy)
@@ -771,7 +771,8 @@
     public void indexDoc() throws IOException {
       Document d = new Document();
 
-      FieldType customType1 = new FieldType(TextField.TYPE_STORED);
+      FieldType customType1 = new FieldType(TextField.TYPE);
+      customType1.setStored(true);
       customType1.setTokenized(false);
       customType1.setOmitNorms(true);
       
Index: lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java	(working copy)
@@ -22,9 +22,11 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.*;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -123,7 +125,8 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d3 = new Document();
 
-    d3.add(newField("f3", "v1", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v1", TextField.TYPE));
+    d3.add(newField("f3", "v1", StoredField.TYPE));
     w2.addDocument(d3);
     w2.close();
     
@@ -292,33 +295,40 @@
     }
   }
 
+  private static final FieldType storedTextType = new FieldType(TextField.TYPE);
+
+  static {
+    storedTextType.setStored(true);
+    storedTextType.freeze();
+  }
+
   // Fields 1-4 indexed together:
   private IndexSearcher single(Random random, boolean compositeComposite) throws IOException {
     dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", storedTextType));
+    d1.add(newField("f2", "v1", storedTextType));
+    d1.add(newField("f3", "v1", storedTextType));
+    d1.add(newField("f4", "v1", storedTextType));
     w.addDocument(d1);
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", storedTextType));
+    d2.add(newField("f2", "v2", storedTextType));
+    d2.add(newField("f3", "v2", storedTextType));
+    d2.add(newField("f4", "v2", storedTextType));
     w.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f1", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f2", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f1", "v3", storedTextType));
+    d3.add(newField("f2", "v3", storedTextType));
+    d3.add(newField("f3", "v3", storedTextType));
+    d3.add(newField("f4", "v3", storedTextType));
     w.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f1", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f2", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f1", "v4", storedTextType));
+    d4.add(newField("f2", "v4", storedTextType));
+    d4.add(newField("f3", "v4", storedTextType));
+    d4.add(newField("f4", "v4", storedTextType));
     w.addDocument(d4);
     w.close();
 
@@ -357,22 +367,22 @@
     IndexWriter w1 = new IndexWriter(dir1, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f1", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f2", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f1", "v1", storedTextType));
+    d1.add(newField("f2", "v1", storedTextType));
     w1.addDocument(d1);
     w1.commit();
     Document d2 = new Document();
-    d2.add(newField("f1", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f2", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f1", "v2", storedTextType));
+    d2.add(newField("f2", "v2", storedTextType));
     w1.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f1", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f2", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f1", "v3", storedTextType));
+    d3.add(newField("f2", "v3", storedTextType));
     w1.addDocument(d3);
     w1.commit();
     Document d4 = new Document();
-    d4.add(newField("f1", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f2", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f1", "v4", storedTextType));
+    d4.add(newField("f2", "v4", storedTextType));
     w1.addDocument(d4);
     w1.close();
     return dir1;
@@ -384,22 +394,22 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f3", "v1", storedTextType));
+    d1.add(newField("f4", "v1", storedTextType));
     w2.addDocument(d1);
     w2.commit();
     Document d2 = new Document();
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f3", "v2", storedTextType));
+    d2.add(newField("f4", "v2", storedTextType));
     w2.addDocument(d2);
     Document d3 = new Document();
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v3", storedTextType));
+    d3.add(newField("f4", "v3", storedTextType));
     w2.addDocument(d3);
     w2.commit();
     Document d4 = new Document();
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v4", storedTextType));
+    d4.add(newField("f4", "v4", storedTextType));
     w2.addDocument(d4);
     w2.close();
     return dir2;
@@ -411,22 +421,22 @@
     IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer(random)).setMergePolicy(NoMergePolicy.NO_COMPOUND_FILES));
     Document d1 = new Document();
-    d1.add(newField("f3", "v1", TextField.TYPE_STORED));
-    d1.add(newField("f4", "v1", TextField.TYPE_STORED));
+    d1.add(newField("f3", "v1", storedTextType));
+    d1.add(newField("f4", "v1", storedTextType));
     w2.addDocument(d1);
     w2.commit();
     Document d2 = new Document();
-    d2.add(newField("f3", "v2", TextField.TYPE_STORED));
-    d2.add(newField("f4", "v2", TextField.TYPE_STORED));
+    d2.add(newField("f3", "v2", storedTextType));
+    d2.add(newField("f4", "v2", storedTextType));
     w2.addDocument(d2);
     w2.commit();
     Document d3 = new Document();
-    d3.add(newField("f3", "v3", TextField.TYPE_STORED));
-    d3.add(newField("f4", "v3", TextField.TYPE_STORED));
+    d3.add(newField("f3", "v3", storedTextType));
+    d3.add(newField("f4", "v3", storedTextType));
     w2.addDocument(d3);
     Document d4 = new Document();
-    d4.add(newField("f3", "v4", TextField.TYPE_STORED));
-    d4.add(newField("f4", "v4", TextField.TYPE_STORED));
+    d4.add(newField("f3", "v4", storedTextType));
+    d4.add(newField("f4", "v4", storedTextType));
     w2.addDocument(d4);
     w2.close();
     return dir2;
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java	(working copy)
@@ -68,7 +68,7 @@
 
 public class TestIndexWriter extends LuceneTestCase {
 
-    private static final FieldType storedTextType = new FieldType(TextField.TYPE_UNSTORED);
+    private static final FieldType storedTextType = new FieldType(TextField.TYPE);
     public void testDocCount() throws IOException {
         Directory dir = newDirectory();
 
@@ -129,7 +129,7 @@
     static void addDoc(IndexWriter writer) throws IOException
     {
         Document doc = new Document();
-        doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
+        doc.add(newField("content", "aaa", TextField.TYPE));
         writer.addDocument(doc);
     }
 
@@ -463,7 +463,8 @@
       MockDirectoryWrapper dir = newDirectory();
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(10));
       // Enable norms for only 1 doc, pre flush
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setOmitNorms(true);
       for(int j=0;j<10;j++) {
         Document doc = new Document();
@@ -528,7 +529,8 @@
         b.append(" a a a a a a a a");
       }
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -602,7 +604,8 @@
               setMergePolicy(newLogMergePolicy(10))
       );
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -625,7 +628,8 @@
       Directory dir = newDirectory();
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
       Document doc = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectorOffsets(true);
@@ -658,7 +662,7 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     Document document = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "", customType));
     iw.addDocument(document);
@@ -677,7 +681,7 @@
       ((LogMergePolicy) conf.getMergePolicy()).setMergeFactor(2);
       IndexWriter iw = new IndexWriter(dir, conf);
       Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       document.add(newField("tvtest", "a b c", customType));
       Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
@@ -703,18 +707,20 @@
       Document doc = new Document();
       String contents = "aa bb cc dd ee ff gg hh ii jj kk";
 
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       FieldType type = null;
       if (i == 7) {
         // Add empty docs here
-        doc.add(newField("content3", "", TextField.TYPE_UNSTORED));
+        doc.add(newField("content3", "", TextField.TYPE));
       } else {
         if (i%2 == 0) {
           doc.add(newField("content4", contents, customType));
           type = customType;
-        } else
-          type = TextField.TYPE_UNSTORED; 
-        doc.add(newField("content1", contents, TextField.TYPE_UNSTORED));
+        } else {
+          type = TextField.TYPE;
+        }
+        doc.add(newField("content1", contents, TextField.TYPE));
         doc.add(newField("content3", "", customType));
         doc.add(newField("content5", "", type));
       }
@@ -746,7 +752,7 @@
     for(int i=0;i<10000;i++)
       b.append(" a");
     b.append(" x");
-    doc.add(newField("field", b.toString(), TextField.TYPE_UNSTORED));
+    doc.add(newField("field", b.toString(), TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
@@ -764,7 +770,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -774,7 +780,7 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -792,10 +798,10 @@
     Directory dir = newDirectory();
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("", "", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "a", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "b", StringField.TYPE_UNSTORED));
-    doc.add(newField("", "c", StringField.TYPE_UNSTORED));
+    doc.add(newField("", "", StringField.TYPE));
+    doc.add(newField("", "a", StringField.TYPE));
+    doc.add(newField("", "b", StringField.TYPE));
+    doc.add(newField("", "c", StringField.TYPE));
     writer.addDocument(doc);  
     writer.close();
     DirectoryReader reader = DirectoryReader.open(dir);
@@ -838,7 +844,8 @@
     Directory dir = newDirectory();
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     doc.add(newField("field", "a field", customType));
     w.addDocument(doc);
     w.commit();
@@ -954,7 +961,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     Field f = newField("field", "", customType);
@@ -991,7 +998,8 @@
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
     Document doc = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1168,7 +1176,8 @@
     customType.setIndexed(true);
     f.setTokenStream(new MockTokenizer(new StringReader("doc1field1"), MockTokenizer.WHITESPACE, false));
 
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     
     Field f2 = newField("string", "value", customType2);
     f2.setTokenStream(new MockTokenizer(new StringReader("doc1field2"), MockTokenizer.WHITESPACE, false));
@@ -1279,7 +1288,7 @@
       s.append(' ').append(i);
     }
     Document d = new Document();
-    Field f = newField("field", s.toString(), TextField.TYPE_UNSTORED);
+    Field f = newField("field", s.toString(), TextField.TYPE);
     d.add(f);
     w.addDocument(d);
 
@@ -1311,7 +1320,7 @@
               setMergePolicy(mergePolicy)
       );
       Document doc = new Document();
-      doc.add(newField("field", "go", TextField.TYPE_UNSTORED));
+      doc.add(newField("field", "go", TextField.TYPE));
       w.addDocument(doc);
       DirectoryReader r;
       if (iter == 0) {
@@ -1381,7 +1390,8 @@
     // First commit
     Document doc = new Document();
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1443,7 +1453,8 @@
     }
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1477,7 +1488,8 @@
         TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMaxBufferedDocs(2));
 
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -1503,11 +1515,14 @@
     String BIG="alskjhlaksjghlaksjfhalksvjepgjioefgjnsdfjgefgjhelkgjhqewlrkhgwlekgrhwelkgjhwelkgrhwlkejg";
     BIG=BIG+BIG+BIG+BIG;
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setOmitNorms(true);
-    FieldType customType2 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setTokenized(false);
-    FieldType customType3 = new FieldType(TextField.TYPE_STORED);
+    FieldType customType3 = new FieldType(TextField.TYPE);
+    customType3.setStored(true);
     customType3.setTokenized(false);
     customType3.setOmitNorms(true);
     
@@ -1632,7 +1647,7 @@
     // Make sure we can add a document with exactly the
     // maximum length term, and search on that term:
     doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setTokenized(false);
     Field contentField = new Field("content", "", customType);
     doc.add(contentField);
@@ -1671,7 +1686,7 @@
     iwc.setReaderTermsIndexDivisor(1);
     IndexWriter writer = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(newField("", "a b c", TextField.TYPE_UNSTORED));
+    doc.add(newField("", "a b c", TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
     dir.close();
@@ -1705,7 +1720,8 @@
     Directory d = new MockDirectoryWrapper(random(), new RAMDirectory());
     IndexWriter w = new IndexWriter(d, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    doc.add(newField("id", "0", StringField.TYPE_STORED));
+    doc.add(newField("id", "0", StringField.TYPE));
+    doc.add(newField("id", "0", StoredField.TYPE));
     w.addDocument(doc);
     DirectoryReader r = w.getReader();
     long version = r.getVersion();
@@ -1749,10 +1765,10 @@
     IndexWriter w = new IndexWriter(dir,
                                     new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
-    FieldType docsAndFreqs = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType docsAndFreqs = new FieldType(TextField.TYPE);
     docsAndFreqs.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
 
-    FieldType docsOnly = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType docsOnly = new FieldType(TextField.TYPE);
     docsOnly.setIndexOptions(IndexOptions.DOCS_ONLY);
 
     Document doc = new Document();
Index: lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java	(working copy)
@@ -21,8 +21,10 @@
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
@@ -132,15 +134,18 @@
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
 
     Document d1 = new Document();
-    d1.add(newField("default","one two", TextField.TYPE_STORED));
+    d1.add(newField("default","one two", TextField.TYPE));
+    d1.add(newField("default","one two", StoredField.TYPE));
     writer.addDocument(d1);
 
     Document d2 = new Document();
-    d2.add(newField("default","one three", TextField.TYPE_STORED));
+    d2.add(newField("default","one three", TextField.TYPE));
+    d2.add(newField("default","one three", StoredField.TYPE));
     writer.addDocument(d2);
 
     Document d3 = new Document();
-    d3.add(newField("default","two four", TextField.TYPE_STORED));
+    d3.add(newField("default","two four", TextField.TYPE));
+    d3.add(newField("default","two four", StoredField.TYPE));
     writer.addDocument(d3);
 
     writer.close();
Index: lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(working copy)
@@ -73,7 +73,7 @@
     Term term = new Term("test", "a");
     for (int i = 0; i < 5000; i++) {
       Document d1 = new Document();
-      d1.add(newField(term.field(), term.text(), TextField.TYPE_UNSTORED));
+      d1.add(newField(term.field(), term.text(), TextField.TYPE));
       writer.addDocument(d1);
     }
     writer.commit();
Index: lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java	(working copy)
@@ -46,7 +46,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -105,7 +105,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -140,7 +140,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -179,7 +179,7 @@
     TokenStream stream = analyzer.tokenStream("field", new StringReader("abcd   "));
     stream.reset(); // TODO: weird to reset before wrapping with CachingTokenFilter... correct?
     stream = new CachingTokenFilter(stream);
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -215,7 +215,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true)));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -251,7 +251,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -296,7 +296,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -335,7 +335,7 @@
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( 
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
@@ -396,7 +396,7 @@
 
       document = new Document();
       document.add(storedField);
-      FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType2 = new FieldType(StringField.TYPE);
       customType2.setStoreTermVectors(true);
       customType2.setStoreTermVectorPositions(true);
       customType2.setStoreTermVectorOffsets(true);
@@ -451,7 +451,7 @@
 
       document = new Document();
       document.add(storedField);
-      FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+      FieldType customType2 = new FieldType(StringField.TYPE);
       customType2.setStoreTermVectors(true);
       customType2.setStoreTermVectorPositions(true);
       customType2.setStoreTermVectorOffsets(true);
@@ -485,7 +485,7 @@
 
     Field storedField = newField("stored", "stored", customType);
     document.add(storedField);
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -521,19 +521,19 @@
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document document = new Document();
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
     document.add(newField("tvtest", "a b c", customType2));
     iw.addDocument(document);
     document = new Document();
-    document.add(newField("tvtest", "x y z", TextField.TYPE_UNSTORED));
+    document.add(newField("tvtest", "x y z", TextField.TYPE));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
 
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType));
     iw.addDocument(document);
@@ -551,21 +551,21 @@
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(
         TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document document = new Document();
-    FieldType customType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(StringField.TYPE);
     customType.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType));
     iw.addDocument(document);
     iw.commit();
 
     document = new Document();
-    document.add(newField("tvtest", "x y z", TextField.TYPE_UNSTORED));
+    document.add(newField("tvtest", "x y z", TextField.TYPE));
     iw.addDocument(document);
     // Make first segment
     iw.commit();
 
     iw.forceMerge(1);
 
-    FieldType customType2 = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(StringField.TYPE);
     customType2.setStoreTermVectors(true);
     document.add(newField("tvtest", "a b c", customType2));
     iw.addDocument(document);
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexFileDeleter.java	(working copy)
@@ -196,8 +196,8 @@
   private void addDoc(IndexWriter writer, int id) throws IOException
   {
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", Integer.toString(id), StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", Integer.toString(id), StringField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java	(working copy)
@@ -45,9 +45,9 @@
 
       int numDocs = _TestUtil.nextInt(random(), 1, 100 * RANDOM_MULTIPLIER);
       Document doc = new Document();
-      Field f = newField("field", "", StringField.TYPE_UNSTORED);
+      Field f = newField("field", "", StringField.TYPE);
       doc.add(f);
-      Field id = newField("id", "", StringField.TYPE_UNSTORED);
+      Field id = newField("id", "", StringField.TYPE);
       doc.add(id);
 
       boolean onlyUniqueTerms = random().nextBoolean();
@@ -156,7 +156,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
     Document d = new Document();
-    d.add(newField("f", "j", StringField.TYPE_UNSTORED));
+    d.add(newField("f", "j", StringField.TYPE));
     w.addDocument(d);
     w.commit();
     w.addDocument(d);
Index: lucene/core/src/test/org/apache/lucene/index/TestCrash.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestCrash.java	(working copy)
@@ -44,8 +44,8 @@
     }
     
     Document doc = new Document();
-    doc.add(newField("content", "aaa", TextField.TYPE_UNSTORED));
-    doc.add(newField("id", "0", TextField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", TextField.TYPE));
+    doc.add(newField("id", "0", TextField.TYPE));
     for(int i=0;i<157;i++)
       writer.addDocument(doc);
 
Index: lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java	(working copy)
@@ -34,7 +34,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", StringField.TYPE));
     final int incrMin = TEST_NIGHTLY ? 15 : 40;
     for(int numDocs=10;numDocs<500;numDocs += _TestUtil.nextInt(random(), incrMin, 5*incrMin)) {
       LogDocMergePolicy ldmp = new LogDocMergePolicy();
@@ -75,7 +75,7 @@
     MockDirectoryWrapper dir = newDirectory();
 
     final Document doc = new Document();
-    doc.add(newField("content", "aaa", StringField.TYPE_UNSTORED));
+    doc.add(newField("content", "aaa", StringField.TYPE));
 
     LogDocMergePolicy ldmp = new LogDocMergePolicy();
     ldmp.setMinMergeDocs(1);
@@ -179,7 +179,7 @@
               setMergePolicy(newLogMergePolicy(51))
       );
       Document doc = new Document();
-      doc.add(newField("field", "aaa", StringField.TYPE_UNSTORED));
+      doc.add(newField("field", "aaa", StringField.TYPE));
       for(int i=0;i<100;i++)
         writer.addDocument(doc);
       writer.forceMerge(1, false);
Index: lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/TestSearchForDuplicates.java	(working copy)
@@ -82,8 +82,10 @@
 
       for (int j = 0; j < MAX_DOCS; j++) {
         Document d = new Document();
-        d.add(newField(PRIORITY_FIELD, HIGH_PRIORITY, TextField.TYPE_STORED));
-        d.add(newField(ID_FIELD, Integer.toString(j), TextField.TYPE_STORED));
+        d.add(newField(PRIORITY_FIELD, HIGH_PRIORITY, TextField.TYPE));
+        d.add(newField(PRIORITY_FIELD, HIGH_PRIORITY, StoredField.TYPE));
+        d.add(newField(ID_FIELD, Integer.toString(j), TextField.TYPE));
+        d.add(newField(ID_FIELD, Integer.toString(j), StoredField.TYPE));
         writer.addDocument(d);
       }
       writer.close();
Index: lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java	(working copy)
@@ -1609,7 +1609,7 @@
       RandomIndexWriter w = new RandomIndexWriter(random(), dir,
                                                   newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(IndexWriterConfig.OpenMode.CREATE));
       Document doc = new Document();
-      Field idField = newField("id", "", StringField.TYPE_UNSTORED);
+      Field idField = newField("id", "", StringField.TYPE);
       doc.add(idField);
       
       final int NUM_IDS = atLeast(200);
@@ -1744,7 +1744,7 @@
     RandomIndexWriter w = new RandomIndexWriter(random(), dir,
                                                 newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(IndexWriterConfig.OpenMode.CREATE));
     Document doc = new Document();
-    Field f = newField("field", "", StringField.TYPE_UNSTORED);
+    Field f = newField("field", "", StringField.TYPE);
     doc.add(f);
       
     final int NUM_TERMS = (int) (1000*RANDOM_MULTIPLIER * (1+random().nextDouble()));
Index: lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java	(working copy)
@@ -57,12 +57,12 @@
     float theFloat = Float.MAX_VALUE;
     for (int i = 0; i < NUM_DOCS; i++){
       Document doc = new Document();
-      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE_UNSTORED));
-      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE_UNSTORED));
+      doc.add(newField("theLong", String.valueOf(theLong--), StringField.TYPE));
+      doc.add(newField("theDouble", String.valueOf(theDouble--), StringField.TYPE));
+      doc.add(newField("theByte", String.valueOf(theByte--), StringField.TYPE));
+      doc.add(newField("theShort", String.valueOf(theShort--), StringField.TYPE));
+      doc.add(newField("theInt", String.valueOf(theInt--), StringField.TYPE));
+      doc.add(newField("theFloat", String.valueOf(theFloat--), StringField.TYPE));
       if (0 == i % 3) {
         wA.addDocument(doc);
       } else {
Index: lucene/core/src/test/org/apache/lucene/document/TestDocument.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/document/TestDocument.java	(working copy)
@@ -201,21 +201,26 @@
     assertEquals(new String[0],
                  doc.getValues("nope"));
   }
-  
+ 
+  static FieldType storedStringType = new FieldType(StringField.TYPE);
+  static {
+    storedStringType.setStored(true);
+    storedStringType.freeze();
+  }
+
   private Document makeDocumentWithFields() {
     Document doc = new Document();
-    FieldType stored = new FieldType();
-    stored.setStored(true);
-    doc.add(new Field("keyword", "test1", StringField.TYPE_STORED));
-    doc.add(new Field("keyword", "test2", StringField.TYPE_STORED));
-    doc.add(new Field("text", "test1", TextField.TYPE_STORED));
-    doc.add(new Field("text", "test2", TextField.TYPE_STORED));
-    doc.add(new Field("unindexed", "test1", stored));
-    doc.add(new Field("unindexed", "test2", stored));
-    doc
-        .add(new TextField("unstored", "test1"));
-    doc
-        .add(new TextField("unstored", "test2"));
+    FieldType storedTextType = new FieldType(TextField.TYPE);
+    storedTextType.setStored(true);
+    storedTextType.freeze();
+    doc.add(new Field("keyword", "test1", storedStringType));
+    doc.add(new Field("keyword", "test2", storedStringType));
+    doc.add(new Field("text", "test1", storedTextType));
+    doc.add(new Field("text", "test2", storedTextType));
+    doc.add(new Field("unindexed", "test1", storedStringType));
+    doc.add(new Field("unindexed", "test2", storedStringType));
+    doc.add(new StoredField("unstored", "test1"));
+    doc.add(new StoredField("unstored", "test2"));
     return doc;
   }
   
@@ -250,10 +255,11 @@
   
   public void testFieldSetValue() throws Exception {
     
-    Field field = new Field("id", "id1", StringField.TYPE_STORED);
+    Field field = new Field("id", "id1", storedStringType);
     Document doc = new Document();
     doc.add(field);
-    doc.add(new Field("keyword", "test", StringField.TYPE_STORED));
+    doc.add(new Field("keyword", "test", StringField.TYPE));
+    doc.add(new Field("keyword", "test", StoredField.TYPE));
     
     Directory dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
@@ -289,7 +295,7 @@
   // LUCENE-3616
   public void testInvalidFields() {
     try {
-      new Field("foo", new EmptyTokenizer(new StringReader("")), StringField.TYPE_STORED);
+      new Field("foo", new EmptyTokenizer(new StringReader("")), StoredField.TYPE);
       fail("did not hit expected exc");
     } catch (IllegalArgumentException iae) {
       // expected
@@ -367,7 +373,8 @@
     iwc.setMergePolicy(newLogMergePolicy());
     IndexWriter iw = new IndexWriter(dir, iwc);
     Document doc = new Document();
-    doc.add(new Field("field1", "sometext", StringField.TYPE_STORED));
+    doc.add(new Field("field1", "sometext", StringField.TYPE));
+    doc.add(new Field("field1", "sometext", StoredField.TYPE));
     doc.add(new TextField("field2", "sometext"));
     doc.add(new StringField("foo", "bar"));
     iw.addDocument(doc); // add an 'ok' document
Index: lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(revision 1345508)
+++ lucene/core/src/test/org/apache/lucene/TestMergeSchedulerExternal.java	(working copy)
@@ -91,7 +91,7 @@
     dir.failOn(new FailOnlyOnMerge());
 
     Document doc = new Document();
-    Field idField = newField("id", "", StringField.TYPE_STORED);
+    Field idField = newField("id", "", StringField.TYPE);
     doc.add(idField);
     
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(
Index: lucene/core/src/java/org/apache/lucene/document/StringField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/StringField.java	(revision 1345508)
+++ lucene/core/src/java/org/apache/lucene/document/StringField.java	(working copy)
@@ -25,36 +25,25 @@
  *  field, or any field that you intend to use for sorting
  *  or access through the field cache.
  *
- *  <p/>This field's value is not stored by default; use the
- *  {@link StringField#TYPE_STORED} type (pass it to <code>new
- *  Field</code>) to store the value. */
+ *  <p/>This field's value is not stored by default; use a
+ *  separate {@link StoredField} instance store it. */
 
 public final class StringField extends Field {
 
   /** Indexed, not tokenized, omits norms, indexes
    *  DOCS_ONLY, not stored. */
-  public static final FieldType TYPE_UNSTORED = new FieldType();
+  public static final FieldType TYPE = new FieldType();
 
-  /** Indexed, not tokenized, omits norms, indexes
-   *  DOCS_ONLY, stored */
-  public static final FieldType TYPE_STORED = new FieldType();
-
   static {
-    TYPE_UNSTORED.setIndexed(true);
-    TYPE_UNSTORED.setOmitNorms(true);
-    TYPE_UNSTORED.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE_UNSTORED.freeze();
-
-    TYPE_STORED.setIndexed(true);
-    TYPE_STORED.setStored(true);
-    TYPE_STORED.setOmitNorms(true);
-    TYPE_STORED.setIndexOptions(IndexOptions.DOCS_ONLY);
-    TYPE_STORED.freeze();
+    TYPE.setIndexed(true);
+    TYPE.setOmitNorms(true);
+    TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
+    TYPE.freeze();
   }
 
   /** Creates a new un-stored StringField */
   public StringField(String name, String value) {
-    super(name, value, TYPE_UNSTORED);
+    super(name, value, TYPE);
   }
 
   @Override
Index: lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java	(revision 1345508)
+++ lucene/core/src/java/org/apache/lucene/document/DocumentStoredFieldVisitor.java	(working copy)
@@ -62,11 +62,13 @@
 
   @Override
   public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-    final FieldType ft = new FieldType(TextField.TYPE_STORED);
+    final FieldType ft = new FieldType(TextField.TYPE);
     ft.setStoreTermVectors(fieldInfo.hasVectors());
     ft.setIndexed(fieldInfo.isIndexed());
     ft.setOmitNorms(fieldInfo.omitsNorms());
     ft.setIndexOptions(fieldInfo.getIndexOptions());
+    ft.setStored(true);
+    ft.freeze();
     doc.add(new Field(fieldInfo.name, value, ft));
   }
 
Index: lucene/core/src/java/org/apache/lucene/document/TextField.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/document/TextField.java	(revision 1345508)
+++ lucene/core/src/java/org/apache/lucene/document/TextField.java	(working copy)
@@ -25,43 +25,34 @@
  *  vectors.  For example this would be used on a 'body'
  *  field, that contains the bulk of a document's text.
  * 
- *  This field's value is not stored by default; use the
- *  {@link TextField#TYPE_STORED} type (pass it to <code>new
- *  Field</code>) to store the value. */
+ *  <p/>This field's value is not stored by default; use a
+ *  separate {@link StoredField} instance store it. */
 
 public final class TextField extends Field {
 
   /* Indexed, tokenized, not stored. */
-  public static final FieldType TYPE_UNSTORED = new FieldType();
+  public static final FieldType TYPE = new FieldType();
 
-  /* Indexed, tokenized, stored. */
-  public static final FieldType TYPE_STORED = new FieldType();
-
   static {
-    TYPE_UNSTORED.setIndexed(true);
-    TYPE_UNSTORED.setTokenized(true);
-    TYPE_UNSTORED.freeze();
-
-    TYPE_STORED.setIndexed(true);
-    TYPE_STORED.setStored(true);
-    TYPE_STORED.setTokenized(true);
-    TYPE_STORED.freeze();
+    TYPE.setIndexed(true);
+    TYPE.setTokenized(true);
+    TYPE.freeze();
   }
 
   // TODO: add sugar for term vectors...?
 
   /** Creates a new un-stored TextField */
   public TextField(String name, Reader reader) {
-    super(name, reader, TextField.TYPE_UNSTORED);
+    super(name, reader, TextField.TYPE);
   }
 
   /** Creates a new un-stored TextField */
   public TextField(String name, String value) {
-    super(name, value, TextField.TYPE_UNSTORED);
+    super(name, value, TextField.TYPE);
   }
   
   /** Creates a new un-stored TextField */
   public TextField(String name, TokenStream stream) {
-    super(name, stream, TextField.TYPE_UNSTORED);
+    super(name, stream, TextField.TYPE);
   }
 }
Index: lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java
===================================================================
--- lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java	(revision 1345508)
+++ lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java	(working copy)
@@ -33,13 +33,14 @@
 
 import org.apache.lucene.benchmark.byTask.utils.Config;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.DoubleField;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType.NumericType;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.FloatField;
 import org.apache.lucene.document.IntField;
 import org.apache.lucene.document.LongField;
-import org.apache.lucene.document.FloatField;
-import org.apache.lucene.document.DoubleField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 
@@ -114,7 +115,8 @@
         fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
         fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
         fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
-        fields.put(ID_FIELD, new Field(ID_FIELD, "", StringField.TYPE_STORED));
+        fields.put(ID_FIELD, new Field(ID_FIELD, "", StringField.TYPE));
+        fields.put(ID_FIELD, new Field(ID_FIELD, "", StoredField.TYPE));
         fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));
 
         numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L));
@@ -315,9 +317,12 @@
       doc.add(bodyField);
       
       if (storeBytes) {
-        Field bytesField = ds.getField(BYTES_FIELD, StringField.TYPE_STORED);
+        Field bytesField = ds.getField(BYTES_FIELD, StringField.TYPE);
         bytesField.setBytesValue(bdy.getBytes("UTF-8"));
         doc.add(bytesField);
+        Field bytesFieldStored = ds.getField(BYTES_FIELD, StoredField.TYPE);
+        bytesFieldStored.setBytesValue(bdy.getBytes("UTF-8"));
+        doc.add(bytesFieldStored);
       }
     }
 
@@ -432,7 +437,7 @@
     boolean termVecPositions = config.get("doc.term.vector.positions", false);
     boolean termVecOffsets = config.get("doc.term.vector.offsets", false);
     
-    valType = new FieldType(TextField.TYPE_UNSTORED);
+    valType = new FieldType(TextField.TYPE);
     valType.setStored(stored);
     valType.setTokenized(tokenized);
     valType.setOmitNorms(!norms);
@@ -441,7 +446,7 @@
     valType.setStoreTermVectorOffsets(termVecOffsets);
     valType.freeze();
 
-    bodyValType = new FieldType(TextField.TYPE_UNSTORED);
+    bodyValType = new FieldType(TextField.TYPE);
     bodyValType.setStored(bodyStored);
     bodyValType.setTokenized(bodyTokenized);
     bodyValType.setOmitNorms(!bodyNorms);
Index: lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
===================================================================
--- lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(revision 1345508)
+++ lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java	(working copy)
@@ -38,16 +38,18 @@
   // One resume...
   private Document makeResume(String name, String country) {
     Document resume = new Document();
-    resume.add(newField("docType", "resume", StringField.TYPE_UNSTORED));
-    resume.add(newField("name", name, StringField.TYPE_STORED));
-    resume.add(newField("country", country, StringField.TYPE_UNSTORED));
+    resume.add(newField("docType", "resume", StringField.TYPE));
+    resume.add(newField("name", name, StringField.TYPE));
+    resume.add(newField("name", name, StoredField.TYPE));
+    resume.add(newField("country", country, StringField.TYPE));
     return resume;
   }
 
   // ... has multiple jobs
   private Document makeJob(String skill, int year) {
     Document job = new Document();
-    job.add(newField("skill", skill, StringField.TYPE_STORED));
+    job.add(newField("skill", skill, StringField.TYPE));
+    job.add(newField("skill", skill, StoredField.TYPE));
     job.add(new IntField("year", year));
     job.add(new StoredField("year", year));
     return job;
@@ -56,7 +58,8 @@
   // ... has multiple qualifications
   private Document makeQualification(String qualification, int year) {
     Document job = new Document();
-    job.add(newField("qualification", qualification, StringField.TYPE_STORED));
+    job.add(newField("qualification", qualification, StringField.TYPE));
+    job.add(newField("qualification", qualification, StoredField.TYPE));
     job.add(new IntField("year", year));
     return job;
   }
@@ -335,29 +338,33 @@
     final boolean doDeletes = random().nextBoolean();
     final List<Integer> toDelete = new ArrayList<Integer>();
 
+    FieldType storedStringType = new FieldType(StringField.TYPE);
+    storedStringType.setStored(true);
+    storedStringType.freeze();
+
     // TODO: parallel star join, nested join cases too!
     final RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     final RandomIndexWriter joinW = new RandomIndexWriter(random(), joinDir);
     for(int parentDocID=0;parentDocID<numParentDocs;parentDocID++) {
       Document parentDoc = new Document();
       Document parentJoinDoc = new Document();
-      Field id = newField("parentID", ""+parentDocID, StringField.TYPE_STORED);
+      Field id = newField("parentID", ""+parentDocID, storedStringType);
       parentDoc.add(id);
       parentJoinDoc.add(id);
-      parentJoinDoc.add(newField("isParent", "x", StringField.TYPE_UNSTORED));
+      parentJoinDoc.add(newField("isParent", "x", StringField.TYPE));
       for(int field=0;field<parentFields.length;field++) {
         if (random().nextDouble() < 0.9) {
           Field f = newField("parent" + field,
                              parentFields[field][random().nextInt(parentFields[field].length)],
-                             StringField.TYPE_UNSTORED);
+                             StringField.TYPE);
           parentDoc.add(f);
           parentJoinDoc.add(f);
         }
       }
 
       if (doDeletes) {
-        parentDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
-        parentJoinDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
+        parentDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
+        parentJoinDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
       }
 
       final List<Document> joinDocs = new ArrayList<Document>();
@@ -381,7 +388,7 @@
         Document joinChildDoc = new Document();
         joinDocs.add(joinChildDoc);
 
-        Field childID = newField("childID", ""+childDocID, StringField.TYPE_STORED);
+        Field childID = newField("childID", ""+childDocID, storedStringType);
         childDoc.add(childID);
         joinChildDoc.add(childID);
 
@@ -389,7 +396,7 @@
           if (random().nextDouble() < 0.9) {
             Field f = newField("child" + childFieldID,
                                childFields[childFieldID][random().nextInt(childFields[childFieldID].length)],
-                               StringField.TYPE_UNSTORED);
+                               StringField.TYPE);
             childDoc.add(f);
             joinChildDoc.add(f);
           }
@@ -408,7 +415,7 @@
         }
 
         if (doDeletes) {
-          joinChildDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE_UNSTORED));
+          joinChildDoc.add(newField("blockID", ""+parentDocID, StringField.TYPE));
         }
 
         w.addDocument(childDoc);
@@ -942,9 +949,9 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
     Document childDoc = new Document();
-    childDoc.add(newField("child", "1", StringField.TYPE_UNSTORED));
+    childDoc.add(newField("child", "1", StringField.TYPE));
     Document parentDoc = new Document();
-    parentDoc.add(newField("parent", "1", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "1", StringField.TYPE));
     w.addDocuments(Arrays.asList(childDoc, parentDoc));
     IndexReader r = w.getReader();
     w.close();
@@ -966,16 +973,16 @@
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setMergePolicy(new LogDocMergePolicy()));
     Document parentDoc = new Document();
-    parentDoc.add(newField("parent", "1", StringField.TYPE_UNSTORED));
-    parentDoc.add(newField("isparent", "yes", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "1", StringField.TYPE));
+    parentDoc.add(newField("isparent", "yes", StringField.TYPE));
     w.addDocuments(Arrays.asList(parentDoc));
 
     // Add another doc so scorer is not null
     parentDoc = new Document();
-    parentDoc.add(newField("parent", "2", StringField.TYPE_UNSTORED));
-    parentDoc.add(newField("isparent", "yes", StringField.TYPE_UNSTORED));
+    parentDoc.add(newField("parent", "2", StringField.TYPE));
+    parentDoc.add(newField("isparent", "yes", StringField.TYPE));
     Document childDoc = new Document();
-    childDoc.add(newField("child", "2", StringField.TYPE_UNSTORED));
+    childDoc.add(newField("child", "2", StringField.TYPE));
     w.addDocuments(Arrays.asList(childDoc, parentDoc));
 
     // Need single seg:
Index: lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
===================================================================
--- lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java	(revision 1345508)
+++ lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java	(working copy)
@@ -67,45 +67,45 @@
 
     // 0
     Document doc = new Document();
-    doc.add(new Field("description", "random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "name1", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "random text", TextField.TYPE));
+    doc.add(new Field("name", "name1", TextField.TYPE));
+    doc.add(new Field(idField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field("price", "10.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "10.0", TextField.TYPE));
+    doc.add(new Field(idField, "2", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field("price", "20.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "3", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "20.0", TextField.TYPE));
+    doc.add(new Field(idField, "3", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
-    doc.add(new Field("description", "more random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "name2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "more random text", TextField.TYPE));
+    doc.add(new Field("name", "name2", TextField.TYPE));
+    doc.add(new Field(idField, "4", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
     // 4
     doc = new Document();
-    doc.add(new Field("price", "10.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "5", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "10.0", TextField.TYPE));
+    doc.add(new Field(idField, "5", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field("price", "20.0", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "6", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("price", "20.0", TextField.TYPE));
+    doc.add(new Field(idField, "6", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());
@@ -149,45 +149,45 @@
 
     // 0
     Document doc = new Document();
-    doc.add(new Field("description", "A random movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "Movie 1", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "A random movie", TextField.TYPE));
+    doc.add(new Field("name", "Movie 1", TextField.TYPE));
+    doc.add(new Field(idField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field("subtitle", "The first subtitle of this movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "The first subtitle of this movie", TextField.TYPE));
+    doc.add(new Field(idField, "2", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field("subtitle", "random subtitle; random event movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "3", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "1", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "random subtitle; random event movie", TextField.TYPE));
+    doc.add(new Field(idField, "3", TextField.TYPE));
+    doc.add(new Field(toField, "1", TextField.TYPE));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
-    doc.add(new Field("description", "A second random movie", TextField.TYPE_UNSTORED));
-    doc.add(new Field("name", "Movie 2", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("description", "A second random movie", TextField.TYPE));
+    doc.add(new Field("name", "Movie 2", TextField.TYPE));
+    doc.add(new Field(idField, "4", TextField.TYPE));
     w.addDocument(doc);
     w.commit();
 
     // 4
     doc = new Document();
-    doc.add(new Field("subtitle", "a very random event happened during christmas night", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "5", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "a very random event happened during christmas night", TextField.TYPE));
+    doc.add(new Field(idField, "5", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field("subtitle", "movie end movie test 123 test 123 random", TextField.TYPE_UNSTORED));
-    doc.add(new Field(idField, "6", TextField.TYPE_UNSTORED));
-    doc.add(new Field(toField, "4", TextField.TYPE_UNSTORED));
+    doc.add(new Field("subtitle", "movie end movie test 123 test 123 random", TextField.TYPE));
+    doc.add(new Field(idField, "6", TextField.TYPE));
+    doc.add(new Field(toField, "4", TextField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());
@@ -381,8 +381,8 @@
       int randomI = random().nextInt(context.randomUniqueValues.length);
       String value = context.randomUniqueValues[randomI];
       Document document = new Document();
-      document.add(newField(random(), "id", id, TextField.TYPE_UNSTORED));
-      document.add(newField(random(), "value", value, TextField.TYPE_UNSTORED));
+      document.add(newField(random(), "id", id, TextField.TYPE));
+      document.add(newField(random(), "value", value, TextField.TYPE));
 
       boolean from = context.randomFrom[randomI];
       int numberOfLinkValues = multipleValuesPerDocument ? 2 + random().nextInt(10) : 1;
@@ -400,7 +400,7 @@
 
           context.fromDocuments.get(linkValue).add(docs[i]);
           context.randomValueFromDocs.get(value).add(docs[i]);
-          document.add(newField(random(), "from", linkValue, TextField.TYPE_UNSTORED));
+          document.add(newField(random(), "from", linkValue, TextField.TYPE));
         } else {
           if (!context.toDocuments.containsKey(linkValue)) {
             context.toDocuments.put(linkValue, new ArrayList<RandomDoc>());
@@ -411,7 +411,7 @@
 
           context.toDocuments.get(linkValue).add(docs[i]);
           context.randomValueToDocs.get(value).add(docs[i]);
-          document.add(newField(random(), "to", linkValue, TextField.TYPE_UNSTORED));
+          document.add(newField(random(), "to", linkValue, TextField.TYPE));
         }
       }
 
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java	(working copy)
@@ -67,55 +67,56 @@
     Document doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "1", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "random text", TextField.TYPE));
+    doc.add(new Field("id", "1", StringField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "some more random text blob", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "2", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random text blob", TextField.TYPE));
+    doc.add(new Field("id", "2", StringField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addField(doc, groupField, "1", dvType);
     addField(doc, countField, "2", dvType);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "3", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE));
+    doc.add(new Field("id", "3", StringField.TYPE));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
     doc = new Document();
     addField(doc, groupField, "2", dvType);
-    doc.add(new Field("content", "some random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "4", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE));
+    doc.add(new Field("id", "4", StringField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addField(doc, groupField, "3", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "5", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("id", "5", StringField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addField(doc, groupField, "3", dvType);
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("content", "random blob", TextField.TYPE_UNSTORED));
-    doc.add(new Field("id", "6", StringField.TYPE_UNSTORED));
+    doc.add(new Field("content", "random blob", TextField.TYPE));
+    doc.add(new Field("id", "6", StringField.TYPE));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(new Field("content", "random word stuck in alot of other text", StoredField.TYPE));
     addField(doc, countField, "1", dvType);
-    doc.add(new Field("id", "6", StringField.TYPE_UNSTORED));
+    doc.add(new Field("id", "6", StringField.TYPE));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());
@@ -316,7 +317,7 @@
   }
 
   private void addField(Document doc, String field, String value, DocValues.Type type) {
-    doc.add(new Field(field, value, StringField.TYPE_UNSTORED));
+    doc.add(new Field(field, value, StringField.TYPE));
     if (type == null) {
       return;
     }
@@ -450,14 +451,14 @@
       countsVals.add(countValue);
 
       Document doc = new Document();
-      doc.add(new Field("id", String.format("%09d", i), StringField.TYPE_UNSTORED));
+      doc.add(new Field("id", String.format("%09d", i), StringField.TYPE));
       if (groupValue != null) {
         addField(doc, groupField, groupValue, dvType);
       }
       if (countValue != null) {
         addField(doc, countField, countValue, dvType);
       }
-      doc.add(new Field("content", content, TextField.TYPE_UNSTORED));
+      doc.add(new Field("content", content, TextField.TYPE));
       w.addDocument(doc);
     }
 
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java	(working copy)
@@ -77,48 +77,55 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random text", TextField.TYPE));
+    doc.add(new Field("content", "random text", StoredField.TYPE));
     doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("content", "some more random text", StoredField.TYPE));
     doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE));
+    doc.add(new Field("content", "some more random textual data", StoredField.TYPE));
     doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE));
+    doc.add(new Field("content", "some random text", StoredField.TYPE));
     doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("content", "some more random text", StoredField.TYPE));
     doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random", TextField.TYPE));
+    doc.add(new Field("content", "random", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(new Field("content", "random word stuck in alot of other text", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
@@ -174,7 +181,8 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new Field(groupField, value, TextField.TYPE));
+    doc.add(new Field(groupField, value, StoredField.TYPE));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
@@ -582,7 +590,7 @@
 
     final List<List<Document>> updateDocs = new ArrayList<List<Document>>();
 
-    FieldType groupEndType = new FieldType(StringField.TYPE_UNSTORED);
+    FieldType groupEndType = new FieldType(StringField.TYPE);
     groupEndType.setIndexOptions(IndexOptions.DOCS_ONLY);
     groupEndType.setOmitNorms(true);
 
@@ -594,12 +602,12 @@
         Document doc = new Document();
         docs.add(doc);
         if (groupValue.group != null) {
-          doc.add(newField("group", groupValue.group.utf8ToString(), StringField.TYPE_UNSTORED));
+          doc.add(newField("group", groupValue.group.utf8ToString(), StringField.TYPE));
         }
-        doc.add(newField("sort1", groupValue.sort1.utf8ToString(), StringField.TYPE_UNSTORED));
-        doc.add(newField("sort2", groupValue.sort2.utf8ToString(), StringField.TYPE_UNSTORED));
+        doc.add(newField("sort1", groupValue.sort1.utf8ToString(), StringField.TYPE));
+        doc.add(newField("sort2", groupValue.sort2.utf8ToString(), StringField.TYPE));
         doc.add(new IntField("id", groupValue.id));
-        doc.add(newField("content", groupValue.content, TextField.TYPE_UNSTORED));
+        doc.add(newField("content", groupValue.content, TextField.TYPE));
         //System.out.println("TEST:     doc content=" + groupValue.content + " group=" + (groupValue.group == null ? "null" : groupValue.group.utf8ToString()) + " sort1=" + groupValue.sort1.utf8ToString() + " id=" + groupValue.id);
       }
       // So we can pull filter marking last doc in block:
@@ -713,15 +721,15 @@
         doc.add(idvGroupField);
       }
 
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newField("group", "", StringField.TYPE);
       doc.add(group);
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newField("sort1", "", StringField.TYPE);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newField("sort2", "", StringField.TYPE);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newField("content", "", TextField.TYPE);
       doc.add(content);
       docNoGroup.add(content);
       IntField id = new IntField("id", 0);
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupsCollectorTest.java	(working copy)
@@ -55,21 +55,24 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random text", TextField.TYPE));
+    doc.add(new Field("content", "random text", StoredField.TYPE));
     doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text blob", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text blob", TextField.TYPE));
+    doc.add(new Field("content", "some more random text blob", StoredField.TYPE));
     doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE));
+    doc.add(new Field("content", "some more random textual data", StoredField.TYPE));
     doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
@@ -77,27 +80,31 @@
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE));
+    doc.add(new Field("content", "some random text", StoredField.TYPE));
     doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("content", "some more random text", StoredField.TYPE));
     doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random blob", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random blob", TextField.TYPE));
+    doc.add(new Field("content", "random blob", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(new Field("content", "random word stuck in alot of other text", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
@@ -121,7 +128,8 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new Field(groupField, value, TextField.TYPE));
+    doc.add(new Field(groupField, value, StoredField.TYPE));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java	(working copy)
@@ -56,23 +56,26 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random text", TextField.TYPE));
+    doc.add(new Field("content", "random text", StoredField.TYPE));
     doc.add(new Field("id", "1", customType));
     documents.add(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("content", "some more random text", StoredField.TYPE));
     doc.add(new Field("id", "2", customType));
     documents.add(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV);
-    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE));
+    doc.add(new Field("content", "some more random textual data", StoredField.TYPE));
     doc.add(new Field("id", "3", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
@@ -80,33 +83,37 @@
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV);
-    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE));
+    doc.add(new Field("content", "some random text", StoredField.TYPE));
     doc.add(new Field("id", "4", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE));
+    doc.add(new Field("content", "some more random text", StoredField.TYPE));
     doc.add(new Field("id", "5", customType));
     documents.add(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV);
-    doc.add(new Field("content", "random", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random", TextField.TYPE));
+    doc.add(new Field("content", "random", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
     documents.add(doc);
     w.addDocuments(documents);
     documents.clear();
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(new Field("content", "random word stuck in alot of other text", StoredField.TYPE));
     doc.add(new Field("id", "6", customType));
-    doc.add(new Field("groupend", "x", StringField.TYPE_UNSTORED));
+    doc.add(new Field("groupend", "x", StringField.TYPE));
 
     w.addDocument(doc);
 
@@ -166,7 +173,8 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new Field(groupField, value, TextField.TYPE));
+    doc.add(new Field(groupField, value, StoredField.TYPE));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(groupField, new BytesRef(value)));
     }
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/AllGroupHeadsCollectorTest.java	(working copy)
@@ -60,56 +60,72 @@
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "1", StringField.TYPE_STORED));
+    doc.add(newField("content", "random text", TextField.TYPE));
+    doc.add(newField("content", "random text", StoredField.TYPE));
+    doc.add(newField("id", "1", StringField.TYPE));
+    doc.add(newField("id", "1", StoredField.TYPE));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "some more random text blob", TextField.TYPE_STORED));
-    doc.add(newField("id", "2", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random text blob", TextField.TYPE));
+    doc.add(newField("content", "some more random text blob", StoredField.TYPE));
+    doc.add(newField("id", "2", StringField.TYPE));
+    doc.add(newField("id", "2", StoredField.TYPE));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
     addGroupField(doc, groupField, "author1", canUseIDV, valueType);
-    doc.add(newField("content", "some more random textual data", TextField.TYPE_STORED));
-    doc.add(newField("id", "3", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random textual data", TextField.TYPE));
+    doc.add(newField("content", "some more random textual data", StoredField.TYPE));
+    doc.add(newField("id", "3", StringField.TYPE));
+    doc.add(newField("id", "3", StoredField.TYPE));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
     doc = new Document();
     addGroupField(doc, groupField, "author2", canUseIDV, valueType);
-    doc.add(newField("content", "some random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "4", StringField.TYPE_STORED));
+    doc.add(newField("content", "some random text", TextField.TYPE));
+    doc.add(newField("content", "some random text", StoredField.TYPE));
+    doc.add(newField("id", "4", StringField.TYPE));
+    doc.add(newField("id", "4", StoredField.TYPE));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV, valueType);
-    doc.add(newField("content", "some more random text", TextField.TYPE_STORED));
-    doc.add(newField("id", "5", StringField.TYPE_STORED));
+    doc.add(newField("content", "some more random text", TextField.TYPE));
+    doc.add(newField("content", "some more random text", StoredField.TYPE));
+    doc.add(newField("id", "5", StringField.TYPE));
+    doc.add(newField("id", "5", StoredField.TYPE));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
     addGroupField(doc, groupField, "author3", canUseIDV, valueType);
-    doc.add(newField("content", "random blob", TextField.TYPE_STORED));
-    doc.add(newField("id", "6", StringField.TYPE_STORED));
+    doc.add(newField("content", "random blob", TextField.TYPE));
+    doc.add(newField("content", "random blob", StoredField.TYPE));
+    doc.add(newField("id", "6", StringField.TYPE));
+    doc.add(newField("id", "6", StoredField.TYPE));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
-    doc.add(newField("id", "6", StringField.TYPE_STORED));
+    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(newField("content", "random word stuck in alot of other text", StoredField.TYPE));
+    doc.add(newField("id", "6", StringField.TYPE));
+    doc.add(newField("id", "6", StoredField.TYPE));
     w.addDocument(doc);
 
     // 7 -- no author field
     doc = new Document();
-    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
-    doc.add(newField("id", "7", StringField.TYPE_STORED));
+    doc.add(newField("content", "random word stuck in alot of other text", TextField.TYPE));
+    doc.add(newField("content", "random word stuck in alot of other text", StoredField.TYPE));
+    doc.add(newField("id", "7", StringField.TYPE));
+    doc.add(newField("id", "7", StoredField.TYPE));
     w.addDocument(doc);
 
     IndexReader reader = w.getReader();
@@ -208,7 +224,7 @@
 
       Document doc = new Document();
       Document docNoGroup = new Document();
-      Field group = newField("group", "", StringField.TYPE_UNSTORED);
+      Field group = newField("group", "", StringField.TYPE);
       doc.add(group);
       Field valuesField = null;
       if (canUseIDV) {
@@ -227,16 +243,16 @@
         }
         doc.add(valuesField);
       }
-      Field sort1 = newField("sort1", "", StringField.TYPE_UNSTORED);
+      Field sort1 = newField("sort1", "", StringField.TYPE);
       doc.add(sort1);
       docNoGroup.add(sort1);
-      Field sort2 = newField("sort2", "", StringField.TYPE_UNSTORED);
+      Field sort2 = newField("sort2", "", StringField.TYPE);
       doc.add(sort2);
       docNoGroup.add(sort2);
-      Field sort3 = newField("sort3", "", StringField.TYPE_UNSTORED);
+      Field sort3 = newField("sort3", "", StringField.TYPE);
       doc.add(sort3);
       docNoGroup.add(sort3);
-      Field content = newField("content", "", TextField.TYPE_UNSTORED);
+      Field content = newField("content", "", TextField.TYPE);
       doc.add(content);
       docNoGroup.add(content);
       IntField id = new IntField("id", 0);
@@ -539,7 +555,8 @@
   }
 
   private void addGroupField(Document doc, String groupField, String value, boolean canUseIDV, Type valueType) {
-    doc.add(new Field(groupField, value, TextField.TYPE_STORED));
+    doc.add(new Field(groupField, value, TextField.TYPE));
+    doc.add(new Field(groupField, value, StoredField.TYPE));
     if (canUseIDV) {
       Field valuesField = null;
       switch(valueType) {
Index: lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java
===================================================================
--- lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java	(revision 1345508)
+++ lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupFacetCollectorTest.java	(working copy)
@@ -218,7 +218,7 @@
   }
 
   private void addField(Document doc, String field, String value, boolean canUseIDV) {
-    doc.add(new Field(field, value, StringField.TYPE_UNSTORED));
+    doc.add(new Field(field, value, StringField.TYPE));
     if (canUseIDV) {
       doc.add(new SortedBytesDocValuesField(field, new BytesRef(value)));
     }
@@ -367,7 +367,7 @@
     Document docNoGroup = new Document();
     Document docNoFacet = new Document();
     Document docNoGroupNoFacet = new Document();
-    Field group = newField("group", "", StringField.TYPE_UNSTORED);
+    Field group = newField("group", "", StringField.TYPE);
     Field groupDc = new SortedBytesDocValuesField("group", new BytesRef());
     if (useDv) {
       doc.add(groupDc);
@@ -378,7 +378,7 @@
     Field[] facetFields;
     if (useDv) {
       facetFields = new Field[2];
-      facetFields[0] = newField("facet", "", StringField.TYPE_UNSTORED);
+      facetFields[0] = newField("facet", "", StringField.TYPE);
       doc.add(facetFields[0]);
       docNoGroup.add(facetFields[0]);
       facetFields[1] = new SortedBytesDocValuesField("facet", new BytesRef());
@@ -387,12 +387,12 @@
     } else {
       facetFields = multipleFacetValuesPerDocument ? new Field[2 + random.nextInt(6)] : new Field[1];
       for (int i = 0; i < facetFields.length; i++) {
-        facetFields[i] = newField("facet", "", StringField.TYPE_UNSTORED);
+        facetFields[i] = newField("facet", "", StringField.TYPE);
         doc.add(facetFields[i]);
         docNoGroup.add(facetFields[i]);
       }
     }
-    Field content = newField("content", "", StringField.TYPE_UNSTORED);
+    Field content = newField("content", "", StringField.TYPE);
     doc.add(content);
     docNoGroup.add(content);
     docNoFacet.add(content);
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(revision 1345508)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java	(working copy)
@@ -1622,7 +1622,8 @@
   
   private Document doc( String f, String v ){
     Document doc = new Document();
-    doc.add( new Field( f, v, TextField.TYPE_STORED));
+    doc.add( new Field( f, v, TextField.TYPE));
+    doc.add( new Field( f, v, StoredField.TYPE));
     return doc;
   }
   
@@ -1775,8 +1776,9 @@
   private void addDoc(IndexWriter writer, String text) throws IOException {
     Document d = new Document();
 
-    Field f = new Field(FIELD_NAME, text, TextField.TYPE_STORED);
+    Field f = new Field(FIELD_NAME, text, TextField.TYPE);
     d.add(f);
+    d.add(new Field(FIELD_NAME, text, StoredField.TYPE));
     writer.addDocument(d);
 
   }
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java	(revision 1345508)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java	(working copy)
@@ -60,7 +60,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -103,7 +103,7 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -174,7 +174,7 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
@@ -217,7 +217,8 @@
     try {
       final Document document = new Document();
 
-      FieldType customType = new FieldType(TextField.TYPE_STORED);
+      FieldType customType = new FieldType(TextField.TYPE);
+      customType.setStored(true);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectors(true);
       document.add(new Field(FIELD, TEXT, customType));
@@ -256,7 +257,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false)));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
       customType.setStoreTermVectors(true);
Index: lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java	(revision 1345508)
+++ lucene/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java	(working copy)
@@ -93,7 +93,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
@@ -137,7 +137,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       customType.setStoreTermVectorPositions(true);
@@ -182,7 +182,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
@@ -227,7 +227,7 @@
         newIndexWriterConfig(TEST_VERSION_CURRENT, null));
     try {
       final Document document = new Document();
-      FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType customType = new FieldType(TextField.TYPE);
       customType.setStoreTermVectors(true);
       customType.setStoreTermVectorOffsets(true);
       document.add(new Field(FIELD, new OverlappingTokenStream(), customType));
Index: lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java	(revision 1345508)
+++ lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java	(working copy)
@@ -355,7 +355,8 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
@@ -373,7 +374,8 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzerK).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
Index: lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
===================================================================
--- lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java	(revision 1345508)
+++ lucene/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java	(working copy)
@@ -139,7 +139,7 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzerW).setOpenMode(OpenMode.CREATE));
     Document doc = new Document();
-    FieldType customType = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType = new FieldType(TextField.TYPE);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorOffsets(true);
     customType.setStoreTermVectorPositions(true);
Index: lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java
===================================================================
--- lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java	(revision 1345508)
+++ lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java	(working copy)
@@ -126,7 +126,8 @@
         
         @Override
         public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-          FieldType ft = new FieldType(TextField.TYPE_STORED);
+          FieldType ft = new FieldType(TextField.TYPE);
+          ft.setStored(true);
           ft.setStoreTermVectors(fieldInfo.hasVectors());
           fields.add(new Field(fieldInfo.name, value, ft));
         }
Index: lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(revision 1345508)
+++ lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -65,7 +66,8 @@
   
   private void addDoc(RandomIndexWriter writer, String text) throws IOException {
     Document doc = new Document();
-    doc.add(newField("text", text, TextField.TYPE_STORED));
+    doc.add(newField("text", text, TextField.TYPE));
+    doc.add(newField("text", text, StoredField.TYPE));
     writer.addDocument(doc);
   }
   
Index: lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(revision 1345508)
+++ lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java	(working copy)
@@ -20,6 +20,7 @@
 import java.util.HashSet;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader;
@@ -58,7 +59,8 @@
     for (int i = 0; i < 100; i++) {
       Document doc = new Document();
       int term = i * 10; //terms are units of 10;
-      doc.add(newField(fieldName, "" + term, StringField.TYPE_STORED));
+      doc.add(newField(fieldName, "" + term, StringField.TYPE));
+      doc.add(newField(fieldName, "" + term, StoredField.TYPE));
       w.addDocument(doc);
     }
     IndexReader reader = new SlowCompositeReaderWrapper(w.getReader());
@@ -92,7 +94,8 @@
     Directory rd1 = newDirectory();
     RandomIndexWriter w1 = new RandomIndexWriter(random(), rd1);
     Document doc = new Document();
-    doc.add(newField(fieldName, "content1", StringField.TYPE_STORED));
+    doc.add(newField(fieldName, "content1", StringField.TYPE));
+    doc.add(newField(fieldName, "content1", StoredField.TYPE));
     w1.addDocument(doc);
     IndexReader reader1 = w1.getReader();
     w1.close();
@@ -101,7 +104,8 @@
     Directory rd2 = newDirectory();
     RandomIndexWriter w2 = new RandomIndexWriter(random(), rd2);
     doc = new Document();
-    doc.add(newField(fieldName, "content2", StringField.TYPE_STORED));
+    doc.add(newField(fieldName, "content2", StringField.TYPE));
+    doc.add(newField(fieldName, "content2", StoredField.TYPE));
     w2.addDocument(doc);
     IndexReader reader2 = w2.getReader();
     w2.close();
Index: lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java	(revision 1345508)
+++ lucene/queries/src/test/org/apache/lucene/queries/ChainedFilterTest.java	(working copy)
@@ -21,6 +21,7 @@
 import java.util.GregorianCalendar;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -62,9 +63,12 @@
 
     for (int i = 0; i < MAX; i++) {
       Document doc = new Document();
-      doc.add(newField("key", "" + (i + 1), StringField.TYPE_STORED));
-      doc.add(newField("owner", (i < MAX / 2) ? "bob" : "sue", StringField.TYPE_STORED));
-      doc.add(newField("date", cal.getTime().toString(), StringField.TYPE_STORED));
+      doc.add(newField("key", "" + (i + 1), StringField.TYPE));
+      doc.add(newField("key", "" + (i + 1), StoredField.TYPE));
+      doc.add(newField("owner", (i < MAX / 2) ? "bob" : "sue", StringField.TYPE));
+      doc.add(newField("owner", (i < MAX / 2) ? "bob" : "sue", StoredField.TYPE));
+      doc.add(newField("date", cal.getTime().toString(), StringField.TYPE));
+      doc.add(newField("date", cal.getTime().toString(), StoredField.TYPE));
       writer.addDocument(doc);
 
       cal.add(Calendar.DATE, 1);
Index: lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(revision 1345508)
+++ lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java	(working copy)
@@ -17,9 +17,12 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.AtomicReaderContext;
@@ -27,19 +30,17 @@
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.search.DocIdSet;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.Filter;
+import org.apache.lucene.search.QueryWrapperFilter;
+import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TermRangeFilter;
-import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.QueryWrapperFilter;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-
 public class BooleanFilterTest extends LuceneTestCase {
   private Directory directory;
   private AtomicReader reader;
@@ -69,10 +70,14 @@
 
   private void addDoc(RandomIndexWriter writer, String accessRights, String price, String date, String inStock) throws IOException {
     Document doc = new Document();
-    doc.add(newField("accessRights", accessRights, TextField.TYPE_STORED));
-    doc.add(newField("price", price, TextField.TYPE_STORED));
-    doc.add(newField("date", date, TextField.TYPE_STORED));
-    doc.add(newField("inStock", inStock, TextField.TYPE_STORED));
+    doc.add(newField("accessRights", accessRights, TextField.TYPE));
+    doc.add(newField("accessRights", accessRights, StoredField.TYPE));
+    doc.add(newField("price", price, TextField.TYPE));
+    doc.add(newField("price", price, StoredField.TYPE));
+    doc.add(newField("date", date, TextField.TYPE));
+    doc.add(newField("date", date, StoredField.TYPE));
+    doc.add(newField("inStock", inStock, TextField.TYPE));
+    doc.add(newField("inStock", inStock, StoredField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java
===================================================================
--- lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java	(revision 1345508)
+++ lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java	(working copy)
@@ -128,14 +128,15 @@
     Field f;
     int scoreAndID = i + 1;
 
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setTokenized(false);
     customType.setOmitNorms(true);
     
     f = newField(ID_FIELD, id2String(scoreAndID), customType); // for debug purposes
     d.add(f);
 
-    FieldType customType2 = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType customType2 = new FieldType(TextField.TYPE);
     customType2.setOmitNorms(true);
     f = newField(TEXT_FIELD, "text of doc" + scoreAndID + textLine(i), customType2); // for regular search
     d.add(f);
Index: lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java
===================================================================
--- lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(revision 1345508)
+++ lucene/demo/src/java/org/apache/lucene/demo/IndexFiles.java	(working copy)
@@ -17,11 +17,20 @@
  * limitations under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Date;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriter;
@@ -32,14 +41,6 @@
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.util.Version;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Date;
-
 /** Index all text files under a directory.
  * <p>
  * This is a command-line application demonstrating simple Lucene indexing.
@@ -174,9 +175,15 @@
           // field that is indexed (i.e. searchable), but don't tokenize 
           // the field into separate words and don't index term frequency
           // or positional information:
-          Field pathField = new Field("path", file.getPath(), StringField.TYPE_STORED);
+          Field pathField = new Field("path", file.getPath(), StringField.TYPE);
           doc.add(pathField);
 
+          // Also store the field so when we retrieve the
+          // Document after searching the path field is
+          // available:
+          Field storedPathField = new Field("path", file.getPath(), StoredField.TYPE);
+          doc.add(storedPathField);
+
           // Add the last modified date of the file a field named "modified".
           // Use a LongField that is indexed (i.e. efficiently filterable with
           // NumericRangeFilter).  This indexes to milli-second resolution, which
Index: lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java
===================================================================
--- lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java	(revision 1345508)
+++ lucene/demo/src/java/org/apache/lucene/demo/xmlparser/FormBasedXmlQueryDemo.java	(working copy)
@@ -134,7 +134,8 @@
     InputStream dataIn = getServletContext().getResourceAsStream("/WEB-INF/data.tsv");
     BufferedReader br = new BufferedReader(new InputStreamReader(dataIn));
     String line = br.readLine();
-    final FieldType textNoNorms = new FieldType(TextField.TYPE_STORED);
+    final FieldType textNoNorms = new FieldType(TextField.TYPE);
+    textNoNorms.setStored(true);
     textNoNorms.setOmitNorms(true);
     while (line != null) {
       line = line.trim();
Index: lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java
===================================================================
--- lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(revision 1345508)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/prefix/TestTermQueryPrefixGridStrategy.java	(working copy)
@@ -17,23 +17,24 @@
 
 package org.apache.lucene.spatial.prefix;
 
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.simple.SimpleSpatialContext;
-import com.spatial4j.core.query.SpatialArgsParser;
-import com.spatial4j.core.shape.Shape;
-import com.spatial4j.core.shape.simple.PointImpl;
+import java.io.IOException;
+import java.util.Arrays;
+
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.spatial.SimpleSpatialFieldInfo;
 import org.apache.lucene.spatial.SpatialTestCase;
 import org.apache.lucene.spatial.prefix.tree.QuadPrefixTree;
 import org.junit.Test;
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.context.simple.SimpleSpatialContext;
+import com.spatial4j.core.query.SpatialArgsParser;
+import com.spatial4j.core.shape.Shape;
+import com.spatial4j.core.shape.simple.PointImpl;
 
-import java.io.IOException;
-import java.util.Arrays;
 
-
 public class TestTermQueryPrefixGridStrategy extends SpatialTestCase {
 
   @Test
@@ -45,7 +46,8 @@
     Shape point = new PointImpl(-118.243680, 34.052230);
 
     Document losAngeles = new Document();
-    losAngeles.add(new Field("name", "Los Angeles", StringField.TYPE_STORED));
+    losAngeles.add(new Field("name", "Los Angeles", StringField.TYPE));
+    losAngeles.add(new Field("name", "Los Angeles", StoredField.TYPE));
     losAngeles.add(prefixGridStrategy.createField(fieldInfo, point, true, true));
 
     addDocumentsAndCommit(Arrays.asList(losAngeles));
Index: lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java
===================================================================
--- lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java	(revision 1345508)
+++ lucene/spatial/src/test/org/apache/lucene/spatial/StrategyTestCase.java	(working copy)
@@ -18,22 +18,23 @@
 package org.apache.lucene.spatial;
 
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.logging.Logger;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.index.IndexableField;
+import org.junit.Assert;
 import com.spatial4j.core.context.SpatialContext;
 import com.spatial4j.core.io.sample.SampleData;
 import com.spatial4j.core.io.sample.SampleDataReader;
 import com.spatial4j.core.query.SpatialArgsParser;
 import com.spatial4j.core.shape.Shape;
-import org.junit.Assert;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
-import org.apache.lucene.index.IndexableField;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.logging.Logger;
-
 public abstract class StrategyTestCase<T extends SpatialFieldInfo> extends SpatialTestCase {
 
   public static final String DATA_STATES_POLY = "states-poly.txt";
@@ -76,8 +77,10 @@
     while (sampleData.hasNext()) {
       SampleData data = sampleData.next();
       Document document = new Document();
-      document.add(new Field("id", data.id, StringField.TYPE_STORED));
-      document.add(new Field("name", data.name, StringField.TYPE_STORED));
+      document.add(new Field("id", data.id, StringField.TYPE));
+      document.add(new Field("id", data.id, StoredField.TYPE));
+      document.add(new Field("name", data.name, StringField.TYPE));
+      document.add(new Field("name", data.name, StoredField.TYPE));
       Shape shape = ctx.readShape(data.shape);
       for (IndexableField f : strategy.createFields(fieldInfo, shape, true, storeShape)) {
         if( f != null ) { // null if incompatibleGeometry && ignore
Index: lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java
===================================================================
--- lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(revision 1345508)
+++ lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java	(working copy)
@@ -126,8 +126,8 @@
     IndexWriter writer = new IndexWriter(ramdir,
                                          new IndexWriterConfig(TEST_VERSION_CURRENT, analyzer).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
     Document doc = new Document();
-    Field field1 = newField("foo", fooField.toString(), TextField.TYPE_UNSTORED);
-    Field field2 = newField("term", termField.toString(), TextField.TYPE_UNSTORED);
+    Field field1 = newField("foo", fooField.toString(), TextField.TYPE);
+    Field field2 = newField("term", termField.toString(), TextField.TYPE);
     doc.add(field1);
     doc.add(field2);
     writer.addDocument(doc);
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java	(revision 1345508)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -54,23 +55,28 @@
     Document doc;
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newField("aaa", "foo", TextField.TYPE));
+    doc.add(newField("aaa", "foo", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("aaa", "foo", TextField.TYPE_STORED));
+    doc.add(newField("aaa", "foo", TextField.TYPE));
+    doc.add(newField("aaa", "foo", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Tom", TextField.TYPE_STORED));
+    doc.add(newField("contents", "Tom", TextField.TYPE));
+    doc.add(newField("contents", "Tom", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new  Document();
-    doc.add(newField("contents", "Jerry", TextField.TYPE_STORED));
+    doc.add(newField("contents", "Jerry", TextField.TYPE));
+    doc.add(newField("contents", "Jerry", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(newField("zzz", "bar", TextField.TYPE_STORED));
+    doc.add(newField("zzz", "bar", TextField.TYPE));
+    doc.add(newField("zzz", "bar", StoredField.TYPE));
     writer.addDocument(doc);
 
     writer.forceMerge(1);
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java	(revision 1345508)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java	(working copy)
@@ -28,6 +28,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
@@ -59,31 +60,39 @@
 
     for (int i = 0; i < 1000; i++) {
       Document doc = new Document();
-      doc.add(newField("field1", English.intToEnglish(i), TextField.TYPE_STORED));
-      doc.add(newField("field2", English.intToEnglish(i + 1), TextField.TYPE_STORED)); // + word thousand
-      doc.add(newField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), TextField.TYPE_STORED)); // + word thousand
+      doc.add(newField("field1", English.intToEnglish(i), TextField.TYPE));
+      doc.add(newField("field1", English.intToEnglish(i), StoredField.TYPE));
+      doc.add(newField("field2", English.intToEnglish(i + 1), TextField.TYPE)); // + word thousand
+      doc.add(newField("field2", English.intToEnglish(i + 1), StoredField.TYPE)); // + word thousand
+      doc.add(newField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), TextField.TYPE)); // + word thousand
+      doc.add(newField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), StoredField.TYPE)); // + word thousand
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "eight", TextField.TYPE_STORED)); // "eight" in
+      doc.add(newField("field1", "eight", TextField.TYPE)); // "eight" in
                                                                    // the index
                                                                    // twice
+      doc.add(newField("field1", "eight", StoredField.TYPE)); // "eight" in
+                                                                   // the index
+                                                                   // twice
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc
-          .add(newField("field1", "twenty-one twenty-one",
-              TextField.TYPE_STORED)); // "twenty-one" in the index thrice
+      doc.add(newField("field1", "twenty-one twenty-one",
+              TextField.TYPE)); // "twenty-one" in the index thrice
+      doc.add(newField("field1", "twenty-one twenty-one",
+              StoredField.TYPE)); // "twenty-one" in the index thrice
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("field1", "twenty", TextField.TYPE_STORED)); // "twenty"
+      doc.add(newField("field1", "twenty", TextField.TYPE)); // "twenty"
                                                                     // in the
                                                                     // index
                                                                     // twice
+      doc.add(newField("field1", "twenty", StoredField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(revision 1345508)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestWordBreakSpellChecker.java	(working copy)
@@ -44,23 +44,23 @@
     for (int i = 900; i < 1112; i++) {
       Document doc = new Document();
       String num = English.intToEnglish(i).replaceAll("[-]", " ").replaceAll("[,]", "");
-      doc.add(newField("numbers", num, TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", num, TextField.TYPE));
       writer.addDocument(doc);
     }
     
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "thou hast sand betwixt thy toes", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "thou hast sand betwixt thy toes", TextField.TYPE));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "hundredeight eightyeight yeight", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "hundredeight eightyeight yeight", TextField.TYPE));
       writer.addDocument(doc);
     }
     {
       Document doc = new Document();
-      doc.add(newField("numbers", "tres y cinco", TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", "tres y cinco", TextField.TYPE));
       writer.addDocument(doc);
     }
     
Index: lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java
===================================================================
--- lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java	(revision 1345508)
+++ lucene/suggest/src/test/org/apache/lucene/search/spell/TestDirectSpellChecker.java	(working copy)
@@ -39,7 +39,7 @@
     String[] termsToAdd = { "metanoia", "metanoian", "metanoiai", "metanoias", "metanoi𐑍" };
     for (int i = 0; i < termsToAdd.length; i++) {
       Document doc = new Document();
-      doc.add(newField("repentance", termsToAdd[i], TextField.TYPE_UNSTORED));
+      doc.add(newField("repentance", termsToAdd[i], TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -68,7 +68,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -108,7 +108,7 @@
     // add some more documents
     for (int i = 1000; i < 1100; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -132,13 +132,13 @@
         new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
 
     Document doc = new Document();
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobar", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobar", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "foobaz", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "foobaz", TextField.TYPE));
     writer.addDocument(doc);
-    doc.add(newField("text", "fobar", TextField.TYPE_UNSTORED));
+    doc.add(newField("text", "fobar", TextField.TYPE));
     writer.addDocument(doc);
    
     IndexReader ir = writer.getReader();
@@ -200,7 +200,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -224,7 +224,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
@@ -249,7 +249,7 @@
 
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
-      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE_UNSTORED));
+      doc.add(newField("numbers", English.intToEnglish(i), TextField.TYPE));
       writer.addDocument(doc);
     }
 
Index: lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java
===================================================================
--- lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(revision 1345508)
+++ lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java	(working copy)
@@ -26,15 +26,16 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.search.BooleanClause;
@@ -575,8 +576,9 @@
     Document doc = new Document();
     // the word field is never queried on... its indexed so it can be quickly
     // checked for rebuild (and stored for retrieval). Doesn't need norms or TF/pos
-    Field f = new Field(F_WORD, text, StringField.TYPE_STORED);
+    Field f = new Field(F_WORD, text, StringField.TYPE);
     doc.add(f); // orig term
+    doc.add(new StoredField(F_WORD, text));
     addGram(text, doc, ng1, ng2);
     return doc;
   }
@@ -588,7 +590,7 @@
       String end = null;
       for (int i = 0; i < len - ng + 1; i++) {
         String gram = text.substring(i, i + ng);
-        FieldType ft = new FieldType(StringField.TYPE_UNSTORED);
+        FieldType ft = new FieldType(StringField.TYPE);
         ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
         Field ngramField = new Field(key, gram, ft);
         // spellchecker does not use positional queries, but we want freqs
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java	(revision 1345508)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java	(working copy)
@@ -28,6 +28,7 @@
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -62,15 +63,18 @@
 
     Document doc;
     doc = new Document();
-    doc.add(new Field("content", "please divide this sentence into shingles", TextField.TYPE_STORED));
+    doc.add(new Field("content", "please divide this sentence into shingles", TextField.TYPE));
+    doc.add(new Field("content", "please divide this sentence into shingles", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "just another test sentence", TextField.TYPE_STORED));
+    doc.add(new Field("content", "just another test sentence", TextField.TYPE));
+    doc.add(new Field("content", "just another test sentence", StoredField.TYPE));
     writer.addDocument(doc);
 
     doc = new Document();
-    doc.add(new Field("content", "a sentence which contains no test", TextField.TYPE_STORED));
+    doc.add(new Field("content", "a sentence which contains no test", TextField.TYPE));
+    doc.add(new Field("content", "a sentence which contains no test", StoredField.TYPE));
     writer.addDocument(doc);
 
     writer.close();
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java	(revision 1345508)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java	(working copy)
@@ -24,6 +24,7 @@
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
@@ -53,8 +54,10 @@
         TEST_VERSION_CURRENT, new SimpleAnalyzer(TEST_VERSION_CURRENT)));
 
     Document doc = new Document();
-    doc.add(new Field("partnum", "Q36", StringField.TYPE_STORED));
-    doc.add(new Field("description", "Illidium Space Modulator", TextField.TYPE_STORED));
+    doc.add(new Field("partnum", "Q36", StringField.TYPE));
+    doc.add(new Field("partnum", "Q36", StoredField.TYPE));
+    doc.add(new Field("description", "Illidium Space Modulator", TextField.TYPE));
+    doc.add(new Field("description", "Illidium Space Modulator", StoredField.TYPE));
     writer.addDocument(doc);
 
     writer.close();
@@ -89,10 +92,12 @@
     RAMDirectory dir = new RAMDirectory();
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
     Document doc = new Document();
-    doc.add(new Field("partnum", "Q36", TextField.TYPE_STORED));
+    doc.add(new Field("partnum", "Q36", TextField.TYPE));
+    doc.add(new Field("partnum", "Q36", StoredField.TYPE));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(new Field("partnum", "Q37", TextField.TYPE_STORED));
+    doc.add(new Field("partnum", "Q37", TextField.TYPE));
+    doc.add(new Field("partnum", "Q37", StoredField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java	(revision 1345508)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java	(working copy)
@@ -58,7 +58,7 @@
     for(int i=0;i<10000;i++)
       b.append(" a");
     b.append(" x");
-    doc.add(newField("field", b.toString(), TextField.TYPE_UNSTORED));
+    doc.add(newField("field", b.toString(), TextField.TYPE));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java	(revision 1345508)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java	(working copy)
@@ -93,7 +93,7 @@
     TokenStream tokenStream = analyzer.tokenStream("field", new StringReader("abcd   "));
     TeeSinkTokenFilter tee = new TeeSinkTokenFilter(tokenStream);
     TokenStream sink = tee.newSinkTokenStream();
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setStoreTermVectors(true);
     ft.setStoreTermVectorOffsets(true);
     ft.setStoreTermVectorPositions(true);
Index: lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java
===================================================================
--- lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java	(revision 1345508)
+++ lucene/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java	(working copy)
@@ -16,9 +16,14 @@
  * limitations under the License.
  */
 
+import java.io.StringReader;
+import java.util.Arrays;
+import java.util.Collections;
+
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -26,10 +31,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.RAMDirectory;
 
-import java.io.StringReader;
-import java.util.Arrays;
-import java.util.Collections;
-
 public class QueryAutoStopWordAnalyzerTest extends BaseTokenStreamTestCase {
   String variedFieldValues[] = {"the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "boring", "dog"};
   String repetitiveFieldValues[] = {"boring", "boring", "vaguelyboring"};
@@ -49,8 +50,10 @@
       Document doc = new Document();
       String variedFieldValue = variedFieldValues[i % variedFieldValues.length];
       String repetitiveFieldValue = repetitiveFieldValues[i % repetitiveFieldValues.length];
-      doc.add(new Field("variedField", variedFieldValue, TextField.TYPE_STORED));
-      doc.add(new Field("repetitiveField", repetitiveFieldValue, TextField.TYPE_STORED));
+      doc.add(new Field("variedField", variedFieldValue, TextField.TYPE));
+      doc.add(new Field("variedField", variedFieldValue, StoredField.TYPE));
+      doc.add(new Field("repetitiveField", repetitiveFieldValue, TextField.TYPE));
+      doc.add(new Field("repetitiveField", repetitiveFieldValue, StoredField.TYPE));
       writer.addDocument(doc);
     }
     writer.close();
Index: lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java
===================================================================
--- lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java	(revision 1345508)
+++ lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java	(working copy)
@@ -17,10 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.StringReader;
+
 import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexWriter;
@@ -35,8 +38,6 @@
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.StringReader;
-
 /**
  * Testcase for {@link UIMABaseAnalyzer}
  */
@@ -69,9 +70,11 @@
     // add the first doc
     Document doc = new Document();
     String dummyTitle = "this is a dummy title ";
-    doc.add(new Field("title", dummyTitle, TextField.TYPE_STORED));
+    doc.add(new Field("title", dummyTitle, TextField.TYPE));
+    doc.add(new Field("title", dummyTitle, StoredField.TYPE));
     String dummyContent = "there is some content written here";
-    doc.add(new Field("contents", dummyContent, TextField.TYPE_STORED));
+    doc.add(new Field("contents", dummyContent, TextField.TYPE));
+    doc.add(new Field("contents", dummyContent, StoredField.TYPE));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
@@ -90,9 +93,11 @@
     // add a second doc
     doc = new Document();
     String dogmasTitle = "dogmas";
-    doc.add(new Field("title", dogmasTitle, TextField.TYPE_STORED));
+    doc.add(new Field("title", dogmasTitle, TextField.TYPE));
+    doc.add(new Field("title", dogmasTitle, StoredField.TYPE));
     String dogmasContents = "white men can't jump";
-    doc.add(new Field("contents", dogmasContents, TextField.TYPE_STORED));
+    doc.add(new Field("contents", dogmasContents, TextField.TYPE));
+    doc.add(new Field("contents", dogmasContents, StoredField.TYPE));
     writer.addDocument(doc, analyzer);
     writer.commit();
 
Index: lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java	(revision 1345508)
+++ lucene/misc/src/test/org/apache/lucene/index/TestPKIndexSplitter.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -104,15 +105,19 @@
     StringBuilder sb = new StringBuilder();
     Document doc = new Document();
     String id = format.format(n);
-    doc.add(newField("id", id, StringField.TYPE_STORED));
-    doc.add(newField("indexname", indexName, StringField.TYPE_STORED));
+    doc.add(newField("id", id, StringField.TYPE));
+    doc.add(newField("id", id, StoredField.TYPE));
+    doc.add(newField("indexname", indexName, StringField.TYPE));
+    doc.add(newField("indexname", indexName, StoredField.TYPE));
     sb.append("a");
     sb.append(n);
-    doc.add(newField("field1", sb.toString(), TextField.TYPE_STORED));
+    doc.add(newField("field1", sb.toString(), TextField.TYPE));
+    doc.add(newField("field1", sb.toString(), StoredField.TYPE));
     sb.append(" b");
     sb.append(n);
     for (int i = 1; i < numFields; i++) {
-      doc.add(newField("field" + (i + 1), sb.toString(), TextField.TYPE_STORED));
+      doc.add(newField("field" + (i + 1), sb.toString(), TextField.TYPE));
+      doc.add(newField("field" + (i + 1), sb.toString(), StoredField.TYPE));
     }
     return doc;
   }
Index: lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(revision 1345508)
+++ lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java	(working copy)
@@ -18,6 +18,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.store.Directory;
@@ -37,8 +38,10 @@
     Document doc;
     for (int i = 0; i < NUM_DOCS; i++) {
       doc = new Document();
-      doc.add(newField("id", i + "", StringField.TYPE_STORED));
-      doc.add(newField("f", i + " " + i, TextField.TYPE_STORED));
+      doc.add(newField("id", i + "", StringField.TYPE));
+      doc.add(newField("id", i + "", StoredField.TYPE));
+      doc.add(newField("f", i + " " + i, TextField.TYPE));
+      doc.add(newField("f", i + " " + i, StoredField.TYPE));
       w.addDocument(doc);
       if (i%3==0) w.commit();
     }
Index: lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
===================================================================
--- lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(revision 1345508)
+++ lucene/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -206,9 +207,11 @@
       Document doc = new Document();
       String content = getContent(i);
     
-      doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+      doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE));
+      doc.add(newField(rnd, "FIELD_1", content, StoredField.TYPE));
       //add a different field
-      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE_STORED));
+      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE));
+      doc.add(newField(rnd, "different_field", "diff", StoredField.TYPE));
       writer.addDocument(doc);
     }
     
@@ -216,7 +219,8 @@
     //highest freq terms for a specific field.
     for (int i = 1; i <= 10; i++) {
       Document doc = new Document();
-      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE_STORED));
+      doc.add(newField(rnd, "different_field", "diff", TextField.TYPE));
+      doc.add(newField(rnd, "different_field", "diff", StoredField.TYPE));
       writer.addDocument(doc);
     }
     // add some docs where tf < df so we can see if sorting works
@@ -227,7 +231,8 @@
     for (int i = 0; i < highTF; i++) {
       content += "highTF ";
     }
-    doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE_STORED));
+    doc.add(newField(rnd, "FIELD_1", content, TextField.TYPE));
+    doc.add(newField(rnd, "FIELD_1", content, StoredField.TYPE));
     writer.addDocument(doc);
     // highTF medium df =5
     int medium_df = 5;
@@ -238,7 +243,8 @@
       for (int j = 0; j < tf; j++) {
         newcontent += "highTFmedDF ";
       }
-      newdoc.add(newField(rnd, "FIELD_1", newcontent, TextField.TYPE_STORED));
+      newdoc.add(newField(rnd, "FIELD_1", newcontent, TextField.TYPE));
+      newdoc.add(newField(rnd, "FIELD_1", newcontent, StoredField.TYPE));
       writer.addDocument(newdoc);
     }
     // add a doc with high tf in field different_field
@@ -248,7 +254,8 @@
     for (int i = 0; i < targetTF; i++) {
       content += "TF150 ";
     }
-    doc.add(newField(rnd, "different_field", content, TextField.TYPE_STORED));
+    doc.add(newField(rnd, "different_field", content, TextField.TYPE));
+    doc.add(newField(rnd, "different_field", content, StoredField.TYPE));
     writer.addDocument(doc);
     writer.close();
     
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java	(working copy)
@@ -93,7 +93,7 @@
     RandomIndexWriter writer = new RandomIndexWriter(random(), dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.KEYWORD, false)).setMergePolicy(newLogMergePolicy()));
 
     Document doc = new Document();
-    Field field = newField("field", "", TextField.TYPE_UNSTORED);
+    Field field = newField("field", "", TextField.TYPE);
     doc.add(field);
     
     for (int i = 0; i < terms; i++) {
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java	(working copy)
@@ -17,9 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.HashSet;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -31,9 +35,6 @@
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.HashSet;
-
 public class FuzzyLikeThisQueryTest extends LuceneTestCase {
   private Directory directory;
   private IndexSearcher searcher;
@@ -69,8 +70,10 @@
 
   private void addDoc(RandomIndexWriter writer, String name, String id) throws IOException {
     Document doc = new Document();
-    doc.add(newField("name", name, TextField.TYPE_STORED));
-    doc.add(newField("id", id, TextField.TYPE_STORED));
+    doc.add(newField("name", name, TextField.TYPE));
+    doc.add(newField("name", name, StoredField.TYPE));
+    doc.add(newField("id", id, TextField.TYPE));
+    doc.add(newField("id", id, StoredField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowCollationMethods.java	(working copy)
@@ -6,6 +6,7 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.RandomIndexWriter;
@@ -58,8 +59,9 @@
     for (int i = 0; i < numDocs; i++) {
       Document doc = new Document();
       String value = _TestUtil.randomUnicodeString(random());
-      Field field = newField("field", value, StringField.TYPE_STORED);
+      Field field = newField("field", value, StringField.TYPE);
       doc.add(field);
+      doc.add(newField("field", value, StoredField.TYPE));
       iw.addDocument(doc);
     }
     splitDoc = _TestUtil.randomUnicodeString(random());
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java	(working copy)
@@ -22,6 +22,7 @@
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.*;
@@ -76,9 +77,12 @@
 
   private void addDoc(RandomIndexWriter writer, String url, String text, String date) throws IOException {
     Document doc = new Document();
-    doc.add(newField(KEY_FIELD, url, StringField.TYPE_STORED));
-    doc.add(newField("text", text, TextField.TYPE_STORED));
-    doc.add(newField("date", date, TextField.TYPE_STORED));
+    doc.add(newField(KEY_FIELD, url, StringField.TYPE));
+    doc.add(newField(KEY_FIELD, url, StoredField.TYPE));
+    doc.add(newField("text", text, TextField.TYPE));
+    doc.add(newField("text", text, StoredField.TYPE));
+    doc.add(newField("date", date, TextField.TYPE));
+    doc.add(newField("date", date, StoredField.TYPE));
     writer.addDocument(doc);
   }
 
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery.java	(working copy)
@@ -17,12 +17,13 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Arrays;
-import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.MultiReader;
@@ -462,7 +463,8 @@
 
   private void addDoc(String text, RandomIndexWriter writer) throws IOException {
     Document doc = new Document();
-    doc.add(newField("field", text, TextField.TYPE_STORED));
+    doc.add(newField("field", text, TextField.TYPE));
+    doc.add(newField("field", text, StoredField.TYPE));
     writer.addDocument(doc);
   }
 }
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestRegexQuery.java	(working copy)
@@ -47,7 +47,7 @@
     directory = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random(), directory);
     Document doc = new Document();
-    doc.add(newField(FN, "the quick brown fox jumps over the lazy dog", TextField.TYPE_UNSTORED));
+    doc.add(newField(FN, "the quick brown fox jumps over the lazy dog", TextField.TYPE));
     writer.addDocument(doc);
     reader = writer.getReader();
     writer.close();
Index: lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java
===================================================================
--- lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java	(revision 1345508)
+++ lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java	(working copy)
@@ -65,10 +65,10 @@
     // Field.Store.NO, Field.Index.ANALYZED));
     // writer.addDocument(doc);
     // doc = new Document();
-    doc.add(newField("field", "auto update", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "auto update", TextField.TYPE));
     writer.addDocument(doc);
     doc = new Document();
-    doc.add(newField("field", "first auto update", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "first auto update", TextField.TYPE));
     writer.addDocument(doc);
     writer.forceMerge(1);
     writer.close();
Index: lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(revision 1345508)
+++ lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java	(working copy)
@@ -165,7 +165,8 @@
       title = new StringField("title", "");
       doc.add(title);
 
-      FieldType ft = new FieldType(TextField.TYPE_STORED);
+      FieldType ft = new FieldType(TextField.TYPE);
+      ft.setStored(true);
       ft.setStoreTermVectors(true);
       ft.setStoreTermVectorOffsets(true);
       ft.setStoreTermVectorPositions(true);
@@ -176,10 +177,12 @@
       body = new Field("body", "", ft);
       doc.add(body);
 
-      id = new Field("docid", "", StringField.TYPE_STORED);
+      FieldType storedStringType = new FieldType(StringField.TYPE);
+      storedStringType.setStored(true);
+      id = new Field("docid", "", storedStringType);
       doc.add(id);
 
-      date = new Field("date", "", StringField.TYPE_STORED);
+      date = new Field("date", "", storedStringType);
       doc.add(date);
 
       if (useDocValues) {
Index: lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java	(revision 1345508)
+++ lucene/test-framework/src/java/org/apache/lucene/analysis/CollationTestBase.java	(working copy)
@@ -27,6 +27,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
@@ -85,8 +86,10 @@
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
-    doc.add(new Field("body", "body", StringField.TYPE_STORED));
+    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE));
+    doc.add(new StoredField("content", "\u0633\u0627\u0628"));
+    doc.add(new Field("body", "body", StringField.TYPE));
+    doc.add(new StoredField("body", "body"));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -122,7 +125,8 @@
     // orders the U+0698 character before the U+0633 character, so the single
     // index Term below should NOT be returned by a TermRangeQuery with a Farsi
     // Collator (or an Arabic one for the case when Farsi is not supported).
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
+    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE));
+    doc.add(new StoredField("content", "\u0633\u0627\u0628"));
     writer.addDocument(doc);
     writer.close();
     IndexReader reader = DirectoryReader.open(dir);
@@ -146,8 +150,10 @@
     IndexWriter writer = new IndexWriter(farsiIndex, new IndexWriterConfig(
         TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE_STORED));
-    doc.add(new Field("body", "body", StringField.TYPE_STORED));
+    doc.add(new Field("content", "\u0633\u0627\u0628", TextField.TYPE));
+    doc.add(new StoredField("content", "\u0633\u0627\u0628"));
+    doc.add(new Field("body", "body", StringField.TYPE));
+    doc.add(new StoredField("body", "body"));
     writer.addDocument(doc);
     writer.close();
 
Index: lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(revision 1345508)
+++ lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java	(working copy)
@@ -45,7 +45,8 @@
   public static final String TEXT_FIELD_1_KEY = "textField1";
   public static Field textField1;
   static {
-    customType = new FieldType(TextField.TYPE_STORED);
+    customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     textField1 = new Field(TEXT_FIELD_1_KEY, FIELD_1_TEXT, customType);
   }
 
@@ -56,7 +57,8 @@
   public static final String TEXT_FIELD_2_KEY = "textField2";
   public static Field textField2;
   static {
-    customType2 = new FieldType(TextField.TYPE_STORED);
+    customType2 = new FieldType(TextField.TYPE);
+    customType2.setStored(true);
     customType2.setStoreTermVectors(true);
     customType2.setStoreTermVectorPositions(true);
     customType2.setStoreTermVectorOffsets(true);
@@ -69,7 +71,8 @@
   public static Field textField3;
   
   static {
-    customType3 = new FieldType(TextField.TYPE_STORED);
+    customType3 = new FieldType(TextField.TYPE);
+    customType3.setStored(true);
     customType3.setOmitNorms(true);
     textField3 = new Field(TEXT_FIELD_3_KEY, FIELD_3_TEXT, customType3);
   }
@@ -77,8 +80,11 @@
   public static final String KEYWORD_TEXT = "Keyword";
   public static final String KEYWORD_FIELD_KEY = "keyField";
   public static Field keyField;
+  public static final FieldType customTypeKey;
   static {
-    keyField = new Field(KEYWORD_FIELD_KEY, KEYWORD_TEXT, StringField.TYPE_STORED);
+    customTypeKey = new FieldType(StringField.TYPE);
+    customTypeKey.setStored(true);
+    keyField = new Field(KEYWORD_FIELD_KEY, KEYWORD_TEXT, customTypeKey);
   }
 
   public static final FieldType customType5;
@@ -86,9 +92,10 @@
   public static final String NO_NORMS_KEY = "omitNorms";
   public static Field noNormsField;
   static {
-    customType5 = new FieldType(TextField.TYPE_STORED);
+    customType5 = new FieldType(TextField.TYPE);
     customType5.setOmitNorms(true);
     customType5.setTokenized(false);
+    customType5.setStored(true);
     noNormsField = new Field(NO_NORMS_KEY, NO_NORMS_TEXT, customType5);
   }
 
@@ -97,7 +104,8 @@
   public static final String NO_TF_KEY = "omitTermFreqAndPositions";
   public static Field noTFField;
   static {
-    customType6 = new FieldType(TextField.TYPE_STORED);
+    customType6 = new FieldType(TextField.TYPE);
+    customType6.setStored(true);
     customType6.setIndexOptions(IndexOptions.DOCS_ONLY);
     noTFField = new Field(NO_TF_KEY, NO_TF_TEXT, customType6);
   }
@@ -115,14 +123,14 @@
 
   public static final String UNSTORED_1_FIELD_TEXT = "unstored field text";
   public static final String UNSTORED_FIELD_1_KEY = "unStoredField1";
-  public static Field unStoredField1 = new Field(UNSTORED_FIELD_1_KEY, UNSTORED_1_FIELD_TEXT, TextField.TYPE_UNSTORED);
+  public static Field unStoredField1 = new Field(UNSTORED_FIELD_1_KEY, UNSTORED_1_FIELD_TEXT, TextField.TYPE);
 
   public static final FieldType customType8;
   public static final String UNSTORED_2_FIELD_TEXT = "unstored field text";
   public static final String UNSTORED_FIELD_2_KEY = "unStoredField2";
   public static Field unStoredField2;
   static {
-    customType8 = new FieldType(TextField.TYPE_UNSTORED);
+    customType8 = new FieldType(TextField.TYPE);
     customType8.setStoreTermVectors(true);
     unStoredField2 = new Field(UNSTORED_FIELD_2_KEY, UNSTORED_2_FIELD_TEXT, customType8);
   }
@@ -293,12 +301,14 @@
   
   public static Document createDocument(int n, String indexName, int numFields) {
     StringBuilder sb = new StringBuilder();
-    FieldType customType = new FieldType(TextField.TYPE_STORED);
+    FieldType customType = new FieldType(TextField.TYPE);
+    customType.setStored(true);
     customType.setStoreTermVectors(true);
     customType.setStoreTermVectorPositions(true);
     customType.setStoreTermVectorOffsets(true);
 
-    FieldType customType1 = new FieldType(StringField.TYPE_STORED);
+    FieldType customType1 = new FieldType(StringField.TYPE);
+    customType1.setStored(true);
     customType1.setStoreTermVectors(true);
     customType1.setStoreTermVectorPositions(true);
     customType1.setStoreTermVectorOffsets(true);
Index: lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(revision 1345508)
+++ lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java	(working copy)
@@ -29,6 +29,8 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.FieldType;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.search.IndexSearcher;
@@ -158,7 +160,8 @@
                 final String addedField;
                 if (random().nextBoolean()) {
                   addedField = "extra" + random().nextInt(40);
-                  doc.add(newField(addedField, "a random field", TextField.TYPE_STORED));
+                  doc.add(newField(addedField, "a random field", TextField.TYPE));
+                  doc.add(newField(addedField, "a random field", StoredField.TYPE));
                 } else {
                   addedField = null;
                 }
@@ -181,13 +184,14 @@
                       packID = packCount.getAndIncrement() + "";
                     }
 
-                    final Field packIDField = newField("packID", packID, StringField.TYPE_STORED);
+                    final Field packIDField = new Field("packID", packID, StringField.TYPE);
                     final List<String> docIDs = new ArrayList<String>();
                     final SubDocs subDocs = new SubDocs(packID, docIDs);
                     final List<Document> docsList = new ArrayList<Document>();
 
                     allSubDocs.add(subDocs);
                     doc.add(packIDField);
+                    doc.add(new StoredField("packID", packID));
                     docsList.add(_TestUtil.cloneDocument(doc));
                     docIDs.add(doc.get("docid"));
 
@@ -218,7 +222,7 @@
                       }
                       addDocuments(packIDTerm, docsList);
                     }
-                    doc.removeField("packID");
+                    doc.removeFields("packID");
 
                     if (random().nextInt(5) == 2) {
                       if (VERBOSE) {
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestMultiFieldQueryParser.java	(working copy)
@@ -283,7 +283,7 @@
     Directory ramDir = newDirectory();
     IndexWriter iw =  new IndexWriter(ramDir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(newField("body", "blah the footest blah", TextField.TYPE_UNSTORED));
+    doc.add(newField("body", "blah the footest blah", TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
     
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestMultiFieldQPHelper.java	(working copy)
@@ -322,7 +322,7 @@
     Directory ramDir = newDirectory();
     IndexWriter iw = new IndexWriter(ramDir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
-    doc.add(newField("body", "blah the footest blah", TextField.TYPE_UNSTORED));
+    doc.add(newField("body", "blah the footest blah", TextField.TYPE));
     iw.addDocument(doc);
     iw.close();
 
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java	(working copy)
@@ -1289,7 +1289,7 @@
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new CannedAnalyzer()));
     Document doc = new Document();
-    doc.add(newField("field", "", TextField.TYPE_UNSTORED));
+    doc.add(newField("field", "", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true);
     IndexSearcher s = newSearcher(r);
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java	(working copy)
@@ -17,12 +17,18 @@
  * limitations under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenFilter;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
@@ -40,12 +46,7 @@
 import org.junit.Assume;
 import org.junit.BeforeClass;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 
-
 public class TestParser extends LuceneTestCase {
 
   private static CoreParser builder;
@@ -69,8 +70,10 @@
       String date = line.substring(0, endOfDate).trim();
       String content = line.substring(endOfDate).trim();
       Document doc = new Document();
-      doc.add(newField("date", date, TextField.TYPE_STORED));
-      doc.add(newField("contents", content, TextField.TYPE_STORED));
+      doc.add(newField("date", date, TextField.TYPE));
+      doc.add(newField("date", date, StoredField.TYPE));
+      doc.add(newField("contents", content, TextField.TYPE));
+      doc.add(newField("contents", content, StoredField.TYPE));
       doc.add(new IntField("date2", Integer.valueOf(date)));
       writer.addDocument(doc);
       line = d.readLine();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestQueryTemplateManager.java	(working copy)
@@ -17,8 +17,16 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.StringTokenizer;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -31,14 +39,7 @@
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-import java.io.IOException;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.StringTokenizer;
 
-
 /**
  * This class illustrates how form input (such as from a web page or Swing gui) can be
  * turned into Lucene queries using a choice of XSL templates for different styles of queries.
@@ -129,7 +130,8 @@
       String name = st.nextToken().trim();
       if (st.hasMoreTokens()) {
         String value = st.nextToken().trim();
-        result.add(newField(name, value, TextField.TYPE_STORED));
+        result.add(newField(name, value, TextField.TYPE));
+        result.add(newField(name, value, StoredField.TYPE));
       }
     }
     return result;
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/complexPhrase/TestComplexPhraseQuery.java	(working copy)
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -120,8 +121,10 @@
     IndexWriter w = new IndexWriter(rd, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
     for (int i = 0; i < docsContent.length; i++) {
       Document doc = new Document();
-      doc.add(newField("name", docsContent[i].name, TextField.TYPE_STORED));
-      doc.add(newField("id", docsContent[i].id, TextField.TYPE_STORED));
+      doc.add(newField("name", docsContent[i].name, TextField.TYPE));
+      doc.add(newField("name", docsContent[i].name, StoredField.TYPE));
+      doc.add(newField("id", docsContent[i].id, TextField.TYPE));
+      doc.add(newField("id", docsContent[i].id, StoredField.TYPE));
       w.addDocument(doc);
     }
     w.close();
Index: lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java
===================================================================
--- lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java	(revision 1345508)
+++ lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java	(working copy)
@@ -1111,7 +1111,7 @@
     Analyzer a = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, a));
     Document doc = new Document();
-    doc.add(newField("f", "the wizard of ozzy", TextField.TYPE_UNSTORED));
+    doc.add(newField("f", "the wizard of ozzy", TextField.TYPE));
     w.addDocument(doc);
     IndexReader r = DirectoryReader.open(w, true);
     w.close();
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java	(revision 1345508)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java	(working copy)
@@ -5,17 +5,17 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.facet.example.ExampleUtils;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.store.Directory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -69,7 +69,8 @@
 
       // create a plain Lucene document and add some regular Lucene fields to it 
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], StoredField.TYPE));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the document and,
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java	(revision 1345508)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java	(working copy)
@@ -6,14 +6,8 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
-
 import org.apache.lucene.facet.example.ExampleUtils;
 import org.apache.lucene.facet.example.simple.SimpleUtils;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
@@ -22,6 +16,12 @@
 import org.apache.lucene.facet.index.params.PerDimensionIndexingParams;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.RAMDirectory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -172,7 +172,8 @@
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new Field(SimpleUtils.TITLE, docTitles[docNum], TextField.TYPE));
+      doc.add(new Field(SimpleUtils.TITLE, docTitles[docNum], StoredField.TYPE));
       doc.add(new TextField(SimpleUtils.TEXT, docTexts[docNum]));
 
       // finally add the document to the index
Index: lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java
===================================================================
--- lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java	(revision 1345508)
+++ lucene/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java	(working copy)
@@ -2,12 +2,8 @@
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.facet.enhancements.EnhancementsDocumentBuilder;
 import org.apache.lucene.facet.enhancements.association.AssociationProperty;
 import org.apache.lucene.facet.example.ExampleUtils;
@@ -17,6 +13,10 @@
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.store.Directory;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -93,7 +93,8 @@
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], StoredField.TYPE));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(revision 1345508)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java	(working copy)
@@ -14,13 +14,27 @@
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.index.params.CategoryListParams;
+import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
+import org.apache.lucene.facet.search.params.FacetRequest;
+import org.apache.lucene.facet.search.params.FacetSearchParams;
+import org.apache.lucene.facet.search.results.FacetResult;
+import org.apache.lucene.facet.search.results.FacetResultNode;
+import org.apache.lucene.facet.taxonomy.CategoryPath;
+import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
@@ -29,24 +43,10 @@
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
-import org.apache.lucene.facet.index.params.CategoryListParams;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
-import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.search.params.FacetRequest;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.search.results.FacetResult;
-import org.apache.lucene.facet.search.results.FacetResultNode;
-import org.apache.lucene.facet.taxonomy.CategoryPath;
-import org.apache.lucene.facet.taxonomy.TaxonomyReader;
-import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -263,7 +263,8 @@
     CategoryDocumentBuilder builder = new CategoryDocumentBuilder(tw, iParams);
     builder.setCategoryPaths(categories);
     builder.build(d);
-    d.add(new Field("content", content, TextField.TYPE_STORED));
+    d.add(new Field("content", content, TextField.TYPE));
+    d.add(new Field("content", content, StoredField.TYPE));
     iw.addDocument(d);
   }
   
Index: lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(revision 1345508)
+++ lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java	(working copy)
@@ -7,24 +7,13 @@
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.store.Directory;
-import org.junit.Test;
-
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.results.FacetResult;
 import org.apache.lucene.facet.search.results.FacetResultNode;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
@@ -32,6 +21,17 @@
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.facet.util.PartitionsUtils;
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
+import org.junit.Test;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -328,7 +328,8 @@
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
+    d.add(new Field("content", "alpha", TextField.TYPE));
+    d.add(new Field("content", "alpha", StoredField.TYPE));
     iw.addDocument(d);
   }
 
Index: lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
===================================================================
--- lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(revision 1345508)
+++ lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java	(working copy)
@@ -7,7 +7,20 @@
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
+import org.apache.lucene.facet.search.FacetsCollector;
+import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest;
+import org.apache.lucene.facet.search.params.FacetSearchParams;
+import org.apache.lucene.facet.taxonomy.CategoryPath;
+import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
@@ -17,23 +30,10 @@
 import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.search.TopScoreDocCollector;
 import org.apache.lucene.store.Directory;
-
-import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
-import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.search.FacetsCollector;
-import org.apache.lucene.facet.search.params.CountFacetRequest;
-import org.apache.lucene.facet.search.params.FacetRequest;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.taxonomy.CategoryPath;
-import org.apache.lucene.facet.taxonomy.TaxonomyReader;
-import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -129,7 +129,8 @@
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
+    d.add(new Field("content", "alpha", TextField.TYPE));
+    d.add(new Field("content", "alpha", StoredField.TYPE));
     iw.addDocument(d);
   }
 
Index: lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java
===================================================================
--- lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java	(revision 1345508)
+++ lucene/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java	(working copy)
@@ -184,7 +184,7 @@
       // Finally creating a suitable field with stream and adding it to a
       // master field-list, used during the build process (see
       // super.build())
-      FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+      FieldType ft = new FieldType(TextField.TYPE);
       ft.setOmitNorms(true);
       fieldList.add(new Field(e.getKey(), stream, ft));
     }
Index: lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
===================================================================
--- lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java	(revision 1345508)
+++ lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java	(working copy)
@@ -213,11 +213,14 @@
     
     reader = null;
 
-    FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
+    FieldType ft = new FieldType(TextField.TYPE);
     ft.setOmitNorms(true);
     parentStreamField = new Field(Consts.FIELD_PAYLOADS, parentStream, ft);
-    fullPathField = new Field(Consts.FULL, "", StringField.TYPE_STORED);
 
+    final FieldType storedStringType = new FieldType(StringField.TYPE);
+    storedStringType.setStored(true);
+    fullPathField = new Field(Consts.FULL, "", storedStringType);
+
     this.nextID = indexWriter.maxDoc();
 
     if (cache == null) {
Index: solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
===================================================================
--- solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(revision 1345508)
+++ solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java	(working copy)
@@ -20,12 +20,12 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Properties;
-
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
@@ -124,8 +124,10 @@
         new IndexWriterConfig(Version.LUCENE_40, new StandardAnalyzer(Version.LUCENE_40))
     );
     Document doc = new Document();
-    doc.add(new Field("id", "2", TextField.TYPE_STORED));
-    doc.add(new Field("name", "name2", TextField.TYPE_STORED));
+    doc.add(new Field("id", "2", TextField.TYPE));
+    doc.add(new Field("id", "2", StoredField.TYPE));
+    doc.add(new Field("name", "name2", TextField.TYPE));
+    doc.add(new Field("name", "name2", StoredField.TYPE));
     iw.addDocument(doc);
     iw.commit();
     iw.close();
Index: solr/core/src/test/org/apache/solr/search/TestSort.java
===================================================================
--- solr/core/src/test/org/apache/solr/search/TestSort.java	(revision 1345508)
+++ solr/core/src/test/org/apache/solr/search/TestSort.java	(working copy)
@@ -158,8 +158,8 @@
 
   public void testSort() throws Exception {
     Directory dir = new RAMDirectory();
-    Field f = new Field("f", "0", StringField.TYPE_UNSTORED);
-    Field f2 = new Field("f2", "0", StringField.TYPE_UNSTORED);
+    Field f = new Field("f", "0", StringField.TYPE);
+    Field f2 = new Field("f2", "0", StringField.TYPE);
 
     for (int iterCnt = 0; iterCnt<iter; iterCnt++) {
       IndexWriter iw = new IndexWriter(
Index: solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
===================================================================
--- solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java	(revision 1345508)
+++ solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java	(working copy)
@@ -16,10 +16,17 @@
  */
 package org.apache.solr.spelling;
 
+import java.io.File;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Map;
+
 import org.apache.lucene.analysis.Token;
 import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
@@ -35,18 +42,12 @@
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.component.SpellCheckComponent;
+import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.RefCounted;
-import org.apache.solr.search.SolrIndexSearcher;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.Map;
-
 /**
  * @since solr 1.3
  */
@@ -291,7 +292,8 @@
     );
     for (int i = 0; i < ALT_DOCS.length; i++) {
       Document doc = new Document();
-      doc.add(new Field("title", ALT_DOCS[i], TextField.TYPE_STORED));
+      doc.add(new Field("title", ALT_DOCS[i], TextField.TYPE));
+      doc.add(new Field("title", ALT_DOCS[i], StoredField.TYPE));
       iw.addDocument(doc);
     }
     iw.forceMerge(1);
Index: solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
===================================================================
--- solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(revision 1345508)
+++ solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java	(working copy)
@@ -451,7 +451,8 @@
 
     @Override
     public void stringField(FieldInfo fieldInfo, String value) throws IOException {
-      final FieldType ft = new FieldType(TextField.TYPE_STORED);
+      final FieldType ft = new FieldType(TextField.TYPE);
+      ft.setStored(true);
       ft.setStoreTermVectors(fieldInfo.hasVectors());
       ft.setIndexed(fieldInfo.isIndexed());
       ft.setOmitNorms(fieldInfo.omitsNorms());
