You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by tp...@apache.org on 2015/03/20 23:07:38 UTC

svn commit: r1668166 - in /tika/trunk: ./ tika-core/src/main/java/org/apache/tika/language/translate/ tika-translate/src/main/java/org/apache/tika/language/translate/

Author: tpalsulich
Date: Fri Mar 20 22:07:38 2015
New Revision: 1668166

URL: http://svn.apache.org/r1668166
Log:
TIKA-1416. Refactor Translator Exception handling.

Modified:
    tika/trunk/CHANGES.txt
    tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java
    tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/Translator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/CachedTranslator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/ExternalTranslator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/GoogleTranslator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/Lingo24Translator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MicrosoftTranslator.java
    tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MosesTranslator.java

Modified: tika/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/tika/trunk/CHANGES.txt?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/CHANGES.txt (original)
+++ tika/trunk/CHANGES.txt Fri Mar 20 22:07:38 2015
@@ -1,5 +1,8 @@
 Release 1.8 - Current Development
 
+  * Translator.translate() Exceptions are now restricted to
+    TikaException and IOException (TIKA-1416).
+
   * Tika now supports MIME detection for Microsoft Extended 
     Makefiles (EMF) (TIKA-1554).
 

Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java Fri Mar 20 22:07:38 2015
@@ -18,6 +18,9 @@
 package org.apache.tika.language.translate;
 
 import org.apache.tika.config.ServiceLoader;
+import org.apache.tika.exception.TikaException;
+
+import java.io.IOException;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -56,11 +59,11 @@ public class DefaultTranslator implement
         return translators;
     }
 
-    public String translate(String text, String sourceLanguage, String targetLanguage) throws Exception {
+    public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException {
         return getDefaultTranslators(loader).get(0).translate(text, sourceLanguage, targetLanguage);
     }
 
-    public String translate(String text, String targetLanguage) throws Exception {
+    public String translate(String text, String targetLanguage) throws TikaException, IOException {
         return getDefaultTranslators(loader).get(0).translate(text, targetLanguage);
     }
 

Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/Translator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/Translator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/Translator.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/language/translate/Translator.java Fri Mar 20 22:07:38 2015
@@ -16,6 +16,10 @@
  */
 package org.apache.tika.language.translate;
 
+import org.apache.tika.exception.TikaException;
+
+import java.io.IOException;
+
 /**
  * Interface for Translator services.
  * @since Tika 1.6
@@ -34,10 +38,11 @@ public interface Translator {
      * @param sourceLanguage The input text language (for example, "en").
      * @param targetLanguage The desired language to translate to (for example, "fr").
      * @return The translation result. If translation is unavailable, returns the same text back.
-     * @throws Exception When there is an error with the API call.
+     * @throws TikaException When there is an error translating.
+     * @throws java.io.IOException
      * @since Tika 1.6
      */
-    public String translate(String text, String sourceLanguage, String targetLanguage) throws Exception;
+    public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException;
 
     /**
      * Translate text to the given language. This method attempts to auto-detect the source language of the text.
@@ -52,10 +57,11 @@ public interface Translator {
      * @param text The text to translate.
      * @param targetLanguage The desired language to translate to (for example, "hi").
      * @return The translation result. If translation is unavailable, returns the same text back.
-     * @throws Exception When there is an error with the API call.
+     * @throws TikaException When there is an error translating.
+     * @throws java.io.IOException
      * @since Tika 1.6
      */
-    public String translate(String text, String targetLanguage) throws Exception;
+    public String translate(String text, String targetLanguage) throws TikaException, IOException;
 
     /**
      * @return true if this Translator is probably able to translate right now.

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/CachedTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/CachedTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/CachedTranslator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/CachedTranslator.java Fri Mar 20 22:07:38 2015
@@ -18,9 +18,11 @@
 package org.apache.tika.language.translate;
 
 import com.fasterxml.jackson.databind.util.LRUMap;
+import org.apache.tika.exception.TikaException;
 import org.apache.tika.language.LanguageIdentifier;
 import org.apache.tika.language.LanguageProfile;
 
+import java.io.IOException;
 import java.util.HashMap;
 
 /**
@@ -47,7 +49,7 @@ public class CachedTranslator implements
     }
 
     @Override
-    public String translate(String text, String sourceLanguage, String targetLanguage) throws Exception {
+    public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException {
         HashMap<String, String> translationCache = getTranslationCache(sourceLanguage, targetLanguage);
         String translatedText = translationCache.get(text);
         if (translatedText == null) {
@@ -58,7 +60,7 @@ public class CachedTranslator implements
     }
 
     @Override
-    public String translate(String text, String targetLanguage) throws Exception {
+    public String translate(String text, String targetLanguage) throws TikaException, IOException {
         LanguageIdentifier language = new LanguageIdentifier(
                 new LanguageProfile(text));
         String sourceLanguage = language.getLanguage();

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/ExternalTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/ExternalTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/ExternalTranslator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/ExternalTranslator.java Fri Mar 20 22:07:38 2015
@@ -17,6 +17,7 @@
 
 package org.apache.tika.language.translate;
 
+import org.apache.tika.exception.TikaException;
 import org.apache.tika.language.LanguageIdentifier;
 import org.apache.tika.language.LanguageProfile;
 
@@ -91,7 +92,7 @@ public abstract class ExternalTranslator
      * @throws Exception
      */
     @Override
-    public String translate(String text, String targetLanguage) throws Exception {
+    public String translate(String text, String targetLanguage) throws TikaException, IOException {
         LanguageIdentifier language = new LanguageIdentifier(
                 new LanguageProfile(text));
         String sourceLanguage = language.getLanguage();

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/GoogleTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/GoogleTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/GoogleTranslator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/GoogleTranslator.java Fri Mar 20 22:07:38 2015
@@ -21,6 +21,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Properties;
@@ -29,6 +30,7 @@ import java.util.logging.Logger;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
 import org.apache.tika.language.LanguageIdentifier;
 import org.apache.tika.language.LanguageProfile;
@@ -78,7 +80,7 @@ public class GoogleTranslator implements
 
 	@Override
 	public String translate(String text, String sourceLanguage,
-			String targetLanguage) throws Exception {
+			String targetLanguage) throws TikaException, IOException {
 		if (!this.isAvailable)
 			return text;
 		Response response = client.accept(MediaType.APPLICATION_JSON)
@@ -99,7 +101,7 @@ public class GoogleTranslator implements
 
 	@Override
 	public String translate(String text, String targetLanguage)
-			throws Exception {
+			throws TikaException, IOException {
 		if (!this.isAvailable)
 			return text;
 		LanguageIdentifier language = new LanguageIdentifier(

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/Lingo24Translator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/Lingo24Translator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/Lingo24Translator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/Lingo24Translator.java Fri Mar 20 22:07:38 2015
@@ -21,6 +21,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Properties;
@@ -71,7 +72,7 @@ public class Lingo24Translator implement
 
     @Override
     public String translate(String text, String sourceLanguage,
-                            String targetLanguage) throws Exception {
+                            String targetLanguage) throws TikaException, IOException {
         if (!this.isAvailable)
             return text;
         Response response = client.accept(MediaType.APPLICATION_JSON)
@@ -96,7 +97,7 @@ public class Lingo24Translator implement
 
     @Override
     public String translate(String text, String targetLanguage)
-            throws Exception {
+            throws TikaException, IOException {
         if (!this.isAvailable)
             return text;
         LanguageIdentifier language = new LanguageIdentifier(

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MicrosoftTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MicrosoftTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MicrosoftTranslator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MicrosoftTranslator.java Fri Mar 20 22:07:38 2015
@@ -19,6 +19,7 @@ package org.apache.tika.language.transla
 
 import com.memetix.mst.language.Language;
 import com.memetix.mst.translate.Translate;
+import org.apache.tika.exception.TikaException;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -77,13 +78,17 @@ public class MicrosoftTranslator impleme
      * @see org.apache.tika.language.translate.Translator
      * @since Tika 1.6
      */
-    public String translate(String text, String sourceLanguage, String targetLanguage) throws Exception {
+    public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException {
         if (!available) return text;
         Language source = Language.fromString(sourceLanguage);
         Language target = Language.fromString(targetLanguage);
         Translate.setClientId(clientId);
         Translate.setClientSecret(clientSecret);
-        return Translate.execute(text, source, target);
+        try {
+            return Translate.execute(text, source, target);
+        } catch (Exception e) {
+            throw new TikaException("Error with Microsoft Translation: " + e.getMessage());
+        }
     }
 
     /**
@@ -96,12 +101,16 @@ public class MicrosoftTranslator impleme
      * @see org.apache.tika.language.translate.Translator
      * @since Tika 1.6
      */
-    public String translate(String text, String targetLanguage) throws Exception {
+    public String translate(String text, String targetLanguage) throws TikaException, IOException {
         if (!available) return text;
         Language target = Language.fromString(targetLanguage);
         Translate.setClientId(clientId);
         Translate.setClientSecret(clientSecret);
-        return Translate.execute(text, target);
+        try {
+            return Translate.execute(text, target);
+        } catch (Exception e) {
+            throw new TikaException("Error with Microsoft Translation: " + e.getMessage());
+        }
     }
 
     /**

Modified: tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MosesTranslator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MosesTranslator.java?rev=1668166&r1=1668165&r2=1668166&view=diff
==============================================================================
--- tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MosesTranslator.java (original)
+++ tika/trunk/tika-translate/src/main/java/org/apache/tika/language/translate/MosesTranslator.java Fri Mar 20 22:07:38 2015
@@ -17,6 +17,8 @@
 
 package org.apache.tika.language.translate;
 
+import org.apache.tika.exception.TikaException;
+
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -75,7 +77,7 @@ public class MosesTranslator extends Ext
     }
 
     @Override
-    public String translate(String text, String sourceLanguage, String targetLanguage) throws Exception {
+    public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException {
         if (!isAvailable() || !checkCommand(buildCheckCommand(smtPath), 1)) return text;
         File tmpFile = new File(TMP_FILE_NAME);
         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(tmpFile), Charset.defaultCharset());