You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2014/04/11 20:28:15 UTC

svn commit: r1586739 - in /tika/trunk/tika-server/src: main/java/org/apache/tika/server/ test/java/org/apache/tika/server/

Author: nick
Date: Fri Apr 11 18:28:14 2014
New Revision: 1586739

URL: http://svn.apache.org/r1586739
Log:
TIKA-1270 Prep for new endpoints by having the existing ones use a common TikaConfig object

Modified:
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataEP.java
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataResource.java
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaResource.java
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaVersion.java
    tika/trunk/tika-server/src/main/java/org/apache/tika/server/UnpackerResource.java
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataEP.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataEP.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataEP.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataEP.java Fri Apr 11 18:28:14 2014
@@ -32,6 +32,7 @@ import javax.ws.rs.core.UriInfo;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.tika.config.TikaConfig;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.AutoDetectParser;
 import org.xml.sax.helpers.DefaultHandler;
@@ -45,15 +46,18 @@ import org.xml.sax.helpers.DefaultHandle
 @Path("/metadata")
 public class MetadataEP {
   private static final Log logger = LogFactory.getLog(MetadataEP.class);
-
-  /** The parser to use */
+  
+  private TikaConfig config;
   private final AutoDetectParser parser;
 
   /** The metdata for the request */
   private final Metadata metadata = new Metadata();
 
   public MetadataEP(@Context HttpHeaders httpHeaders, @Context UriInfo info) {
-    parser = TikaResource.createParser();
+    // TODO How to get this better?
+    config = TikaConfig.getDefaultConfig();
+    parser = TikaResource.createParser(config);
+    
     TikaResource.fillMetadata(parser, metadata, httpHeaders.getRequestHeaders());
     TikaResource.logRequest(logger, info, metadata);
   }

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataResource.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataResource.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataResource.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/MetadataResource.java Fri Apr 11 18:28:14 2014
@@ -38,6 +38,7 @@ import javax.ws.rs.core.UriInfo;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.apache.tika.config.TikaConfig;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.AutoDetectParser;
 import org.xml.sax.helpers.DefaultHandler;
@@ -47,7 +48,12 @@ import au.com.bytecode.opencsv.CSVWriter
 @Path("/meta")
 public class MetadataResource {
   private static final Log logger = LogFactory.getLog(MetadataResource.class);
-
+  
+  private TikaConfig tikaConfig;
+  public MetadataResource(TikaConfig tikaConfig) {
+      this.tikaConfig = tikaConfig;
+  }
+  
   @PUT
   @Consumes("multipart/form-data")
   @Produces("text/csv")
@@ -64,7 +70,7 @@ public class MetadataResource {
   
   private StreamingOutput produceMetadata(InputStream is, MultivaluedMap<String, String> httpHeaders, UriInfo info) throws Exception {
     final Metadata metadata = new Metadata();
-    AutoDetectParser parser = TikaResource.createParser();
+    AutoDetectParser parser = TikaResource.createParser(tikaConfig);
     TikaResource.fillMetadata(parser, metadata, httpHeaders);
     TikaResource.logRequest(logger, info, metadata);
 

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaResource.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaResource.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaResource.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaResource.java Fri Apr 11 18:28:14 2014
@@ -50,6 +50,7 @@ import org.apache.commons.logging.LogFac
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
 import org.apache.poi.extractor.ExtractorFactory;
 import org.apache.poi.hwpf.OldWordFileFormatException;
+import org.apache.tika.config.TikaConfig;
 import org.apache.tika.detect.Detector;
 import org.apache.tika.exception.EncryptedDocumentException;
 import org.apache.tika.exception.TikaException;
@@ -70,11 +71,16 @@ import org.xml.sax.SAXException;
 public class TikaResource {
   public static final String GREETING = "This is Tika Server. Please PUT\n";
   private final Log logger = LogFactory.getLog(TikaResource.class);
+  
+  private TikaConfig tikaConfig;
+  public TikaResource(TikaConfig tikaConfig) {
+      this.tikaConfig = tikaConfig;
+  }
 
   static {
     ExtractorFactory.setAllThreadsPreferEventExtractors(true);
   }
-
+  
   @GET
   @Produces("text/plain")
   public String getMessage() {
@@ -82,8 +88,8 @@ public class TikaResource {
   }
 
   @SuppressWarnings("serial")
-  public static AutoDetectParser createParser() {
-    final AutoDetectParser parser = new AutoDetectParser();
+  public static AutoDetectParser createParser(TikaConfig tikaConfig) {
+    final AutoDetectParser parser = new AutoDetectParser(tikaConfig);
 
     Map<MediaType,Parser> parsers = parser.getParsers();
     parsers.put(MediaType.APPLICATION_XML, new HtmlParser());
@@ -177,7 +183,7 @@ public static void fillMetadata(AutoDete
 	  return produceText(is, httpHeaders.getRequestHeaders(), info);
   }
   public StreamingOutput produceText(final InputStream is, MultivaluedMap<String, String> httpHeaders, final UriInfo info) {	  
-    final AutoDetectParser parser = createParser();
+    final AutoDetectParser parser = createParser(tikaConfig);
     final Metadata metadata = new Metadata();
 
     fillMetadata(parser, metadata, httpHeaders);
@@ -261,7 +267,7 @@ public static void fillMetadata(AutoDete
   
   private StreamingOutput produceOutput(final InputStream is, final MultivaluedMap<String, String> httpHeaders, 
         final UriInfo info, final String format) {
-    final AutoDetectParser parser = createParser();
+    final AutoDetectParser parser = createParser(tikaConfig);
     final Metadata metadata = new Metadata();
 
     fillMetadata(parser, metadata, httpHeaders);

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java Fri Apr 11 18:28:14 2014
@@ -32,8 +32,10 @@ import org.apache.commons.logging.LogFac
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.jaxrs.JAXRSBindingFactory;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.apache.tika.Tika;
+import org.apache.tika.config.TikaConfig;
 
 public class TikaServerCli {
   private static final Log logger = LogFactory.getLog(TikaServerCli.class);
@@ -84,9 +86,11 @@ public class TikaServerCli {
         port = Integer.valueOf(line.getOptionValue("port"));
       }
       
+      // The Tika Configuration to use throughout
+      TikaConfig tika = TikaConfig.getDefaultConfig();
 
       JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
-      sf.setResourceClasses(MetadataEP.class,MetadataResource.class, TikaResource.class, UnpackerResource.class, TikaVersion.class);
+      sf.setResourceClasses(MetadataEP.class, MetadataResource.class, TikaResource.class, UnpackerResource.class, TikaVersion.class);
 
       List<Object> providers = new ArrayList<Object>();
       providers.add(new TarWriter());
@@ -94,11 +98,15 @@ public class TikaServerCli {
       providers.add(new CSVMessageBodyWriter());
       providers.add(new JSONMessageBodyWriter());
       providers.add(new TikaExceptionMapper());
-      providers.add(new SingletonResourceProvider(new MetadataResource()));
-      providers.add(new SingletonResourceProvider(new TikaResource()));
-      providers.add(new SingletonResourceProvider(new UnpackerResource()));
-      providers.add(new SingletonResourceProvider(new TikaVersion()));
       sf.setProviders(providers);
+      
+      List<ResourceProvider> rProviders = new ArrayList<ResourceProvider>();
+      rProviders.add(new SingletonResourceProvider(new MetadataResource(tika)));
+      rProviders.add(new SingletonResourceProvider(new TikaResource(tika)));
+      rProviders.add(new SingletonResourceProvider(new UnpackerResource(tika)));
+      rProviders.add(new SingletonResourceProvider(new TikaVersion(tika)));
+      sf.setResourceProviders(rProviders);
+      
       sf.setAddress("http://" + host + ":" + port + "/");
       BindingFactoryManager manager = sf.getBus().getExtension(
 				BindingFactoryManager.class);

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaVersion.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaVersion.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaVersion.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/TikaVersion.java Fri Apr 11 18:28:14 2014
@@ -21,14 +21,18 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 
 import org.apache.tika.Tika;
+import org.apache.tika.config.TikaConfig;
 
 @Path("/version")
 public class TikaVersion {
-
+    private Tika tika;
+    public TikaVersion(TikaConfig tika) {
+        this.tika = new Tika(tika);
+    }
+    
     @GET
     @Produces("text/plain")
     public String getVersion() {
-      return new Tika().toString();
+      return tika.toString();
     }
-
 }

Modified: tika/trunk/tika-server/src/main/java/org/apache/tika/server/UnpackerResource.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/UnpackerResource.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/main/java/org/apache/tika/server/UnpackerResource.java (original)
+++ tika/trunk/tika-server/src/main/java/org/apache/tika/server/UnpackerResource.java Fri Apr 11 18:28:14 2014
@@ -66,10 +66,9 @@ public class UnpackerResource {
   public static final String TEXT_FILENAME = "__TEXT__";
   private static final String META_FILENAME = "__METADATA__";
 
-  private final TikaConfig tikaConfig;
-
-  public UnpackerResource() {
-    tikaConfig = TikaConfig.getDefaultConfig();
+  private TikaConfig tikaConfig;
+  public UnpackerResource(TikaConfig tikaConfig) {
+      this.tikaConfig = tikaConfig;
   }
 
   @Path("unpacker{id:(/.*)?}")
@@ -102,7 +101,7 @@ public class UnpackerResource {
   ) throws Exception {
     Metadata metadata = new Metadata();
 
-    AutoDetectParser parser = TikaResource.createParser();
+    AutoDetectParser parser = TikaResource.createParser(tikaConfig);
 
     TikaResource.fillMetadata(parser, metadata, httpHeaders.getRequestHeaders());
     TikaResource.logRequest(logger, info, metadata);
@@ -255,4 +254,4 @@ public class UnpackerResource {
       }
     }
   }
-}
\ No newline at end of file
+}

Modified: tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java (original)
+++ tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java Fri Apr 11 18:28:14 2014
@@ -32,9 +32,28 @@ import org.apache.commons.compress.archi
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipFile;
 import org.apache.commons.compress.utils.IOUtils;
+import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.io.CachedOutputStream;
+import org.apache.tika.config.TikaConfig;
+import org.junit.After;
+import org.junit.Before;
 
 public class CXFTestBase {
+    protected static final String endPoint = 
+            "http://localhost:" + TikaServerCli.DEFAULT_PORT;
+    protected Server server;
+    protected TikaConfig tika;
+    
+    @Before
+    public void setUp() {
+        this.tika = TikaConfig.getDefaultConfig();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        server.stop();
+        server.destroy();
+    }
 
 	protected String getStringFromInputStream(InputStream in) throws Exception {
 		CachedOutputStream bos = new CachedOutputStream();

Modified: tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java (original)
+++ tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java Fri Apr 11 18:28:14 2014
@@ -50,10 +50,11 @@ public class MetadataResourceTest extend
 
 	@Before
 	public void setUp() {
+            super.setUp();
 		JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
 		sf.setResourceClasses(MetadataResource.class);
 		sf.setResourceProvider(MetadataResource.class,
-				new SingletonResourceProvider(new MetadataResource()));
+				new SingletonResourceProvider(new MetadataResource(tika)));
 		sf.setAddress(endPoint + "/");
 		BindingFactoryManager manager = sf.getBus().getExtension(
 				BindingFactoryManager.class);

Modified: tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java (original)
+++ tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java Fri Apr 11 18:28:14 2014
@@ -47,10 +47,11 @@ public class TikaResourceTest extends CX
 
 	@Before
 	public void setUp() {
+	    super.setUp();
 		JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
 		sf.setResourceClasses(TikaResource.class);
 		sf.setResourceProvider(TikaResource.class,
-				new SingletonResourceProvider(new TikaResource()));
+				new SingletonResourceProvider(new TikaResource(tika)));
 		sf.setAddress(endPoint + "/");
 		BindingFactoryManager manager = sf.getBus().getExtension(
 				BindingFactoryManager.class);

Modified: tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java (original)
+++ tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java Fri Apr 11 18:28:14 2014
@@ -35,19 +35,16 @@ import org.junit.Before;
 import org.junit.Test;
 
 public class TikaVersionTest extends CXFTestBase {
-
   private static final String VERSION_PATH = "/version";
-  private static final String endPoint = "http://localhost:"
-      + TikaServerCli.DEFAULT_PORT;
-  private Server server;
 
   @Before
   public void setUp() {
+    super.setUp();
     JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
     sf.setResourceClasses(TikaVersion.class);
     sf.setResourceProvider(
         TikaVersion.class,
-        new SingletonResourceProvider(new TikaVersion())
+        new SingletonResourceProvider(new TikaVersion(tika))
     );
     sf.setAddress(endPoint + "/");
 

Modified: tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java?rev=1586739&r1=1586738&r2=1586739&view=diff
==============================================================================
--- tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java (original)
+++ tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java Fri Apr 11 18:28:14 2014
@@ -75,6 +75,7 @@ public class UnpackerResourceTest extend
 
     @Before
 	public void setUp() {
+            super.setUp();
 		JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
 		List<Object> providers = new ArrayList<Object>();
 		providers.add(new TarWriter());
@@ -83,7 +84,7 @@ public class UnpackerResourceTest extend
     		sf.setProviders(providers);
 		sf.setResourceClasses(UnpackerResource.class);
 		sf.setResourceProvider(UnpackerResource.class,
-				new SingletonResourceProvider(new UnpackerResource()));
+				new SingletonResourceProvider(new UnpackerResource(tika)));
 		sf.setAddress(endPoint + "/");
 		BindingFactoryManager manager = sf.getBus().getExtension(
 				BindingFactoryManager.class);