From aed4a3972d719bd03b5ecbcaa7ca5d56af72d674 Mon Sep 17 00:00:00 2001
From: Robert Muir <rmuir@apache.org>
Date: Mon, 17 Jan 2011 17:50:04 +0000
Subject: [PATCH] SOLR-2259: warn if you are using a deprecated analysis
 factory

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1060023 13f79535-47bb-0310-9956-ffa450edef68
---
 .../solr/analysis/ArabicLetterTokenizerFactory.java       | 8 +++++++-
 .../org/apache/solr/analysis/BaseTokenStreamFactory.java  | 4 ++++
 .../org/apache/solr/analysis/ChineseFilterFactory.java    | 7 +++++++
 .../org/apache/solr/analysis/ChineseTokenizerFactory.java | 7 +++++++
 .../solr/analysis/RussianLetterTokenizerFactory.java      | 3 ++-
 5 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/solr/src/java/org/apache/solr/analysis/ArabicLetterTokenizerFactory.java b/solr/src/java/org/apache/solr/analysis/ArabicLetterTokenizerFactory.java
index 75e0341aeed..b36ecee382b 100644
--- a/solr/src/java/org/apache/solr/analysis/ArabicLetterTokenizerFactory.java
+++ b/solr/src/java/org/apache/solr/analysis/ArabicLetterTokenizerFactory.java
@@ -19,6 +19,7 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.ar.ArabicLetterTokenizer;
 
 import java.io.Reader;
+import java.util.Map;
 
 
 /**
@@ -28,8 +29,13 @@ import java.io.Reader;
 @Deprecated
 public class ArabicLetterTokenizerFactory extends BaseTokenizerFactory{
 
-  public ArabicLetterTokenizer create(Reader input) {
+  public void init(Map<String,String> args) {
+    super.init(args);
     assureMatchVersion();
+    warnDeprecated("Use StandardTokenizerFactory instead.");
+  }
+
+  public ArabicLetterTokenizer create(Reader input) {
     return new ArabicLetterTokenizer(luceneMatchVersion, input);
   }
 }
diff --git a/solr/src/java/org/apache/solr/analysis/BaseTokenStreamFactory.java b/solr/src/java/org/apache/solr/analysis/BaseTokenStreamFactory.java
index f2977a4d42e..632b5dddbc4 100644
--- a/solr/src/java/org/apache/solr/analysis/BaseTokenStreamFactory.java
+++ b/solr/src/java/org/apache/solr/analysis/BaseTokenStreamFactory.java
@@ -75,6 +75,10 @@ abstract class BaseTokenStreamFactory {
     }
   }
 
+  protected final void warnDeprecated(String message) {
+    log.warn(getClass().getSimpleName() + " is deprecated. " + message);
+  }
+  
   // TODO: move these somewhere that tokenizers and others
   // can also use them...
   protected int getInt(String name) {
diff --git a/solr/src/java/org/apache/solr/analysis/ChineseFilterFactory.java b/solr/src/java/org/apache/solr/analysis/ChineseFilterFactory.java
index 7e2857c48d3..6ffb67971b9 100644
--- a/solr/src/java/org/apache/solr/analysis/ChineseFilterFactory.java
+++ b/solr/src/java/org/apache/solr/analysis/ChineseFilterFactory.java
@@ -18,6 +18,8 @@
 
 
 package org.apache.solr.analysis;
+import java.util.Map;
+
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.cn.ChineseFilter;
 
@@ -27,6 +29,11 @@ import org.apache.lucene.analysis.cn.ChineseFilter;
  */
 @Deprecated
 public class ChineseFilterFactory extends BaseTokenFilterFactory {
+  public void init(Map<String,String> args) {
+    super.init(args);
+    warnDeprecated("Use StopFilterFactory instead.");
+  }
+  
   public ChineseFilter create(TokenStream in) {
     return new ChineseFilter(in);
   }
diff --git a/solr/src/java/org/apache/solr/analysis/ChineseTokenizerFactory.java b/solr/src/java/org/apache/solr/analysis/ChineseTokenizerFactory.java
index 2f0a4e83cc2..978882e2a65 100644
--- a/solr/src/java/org/apache/solr/analysis/ChineseTokenizerFactory.java
+++ b/solr/src/java/org/apache/solr/analysis/ChineseTokenizerFactory.java
@@ -20,6 +20,8 @@
 package org.apache.solr.analysis;
 
 import java.io.Reader;
+import java.util.Map;
+
 import org.apache.lucene.analysis.cn.ChineseTokenizer;
 
 /** 
@@ -28,6 +30,11 @@ import org.apache.lucene.analysis.cn.ChineseTokenizer;
  */
 @Deprecated
 public class ChineseTokenizerFactory extends BaseTokenizerFactory {
+  public void init(Map<String,String> args) {
+    super.init(args);
+    warnDeprecated("Use StandardTokenizerFactory instead.");
+  }
+  
   public ChineseTokenizer create(Reader in) {
     return new ChineseTokenizer(in);
   }
diff --git a/solr/src/java/org/apache/solr/analysis/RussianLetterTokenizerFactory.java b/solr/src/java/org/apache/solr/analysis/RussianLetterTokenizerFactory.java
index fd0ab7e3d96..587f082c7de 100644
--- a/solr/src/java/org/apache/solr/analysis/RussianLetterTokenizerFactory.java
+++ b/solr/src/java/org/apache/solr/analysis/RussianLetterTokenizerFactory.java
@@ -37,10 +37,11 @@ public class RussianLetterTokenizerFactory extends BaseTokenizerFactory {
       throw new SolrException(ErrorCode.SERVER_ERROR,
           "The charset parameter is no longer supported.  "
           + "Please process your documents as Unicode instead.");
+    assureMatchVersion();
+    warnDeprecated("Use StandardTokenizerFactory instead.");
   }
 
   public RussianLetterTokenizer create(Reader in) {
-    assureMatchVersion();
     return new RussianLetterTokenizer(luceneMatchVersion,in);
   }
 }