[[tika-component]]
= Tika Component
:docTitle: Tika
:artifactId: camel-tika
:description: Parse documents and extract metadata and text using Apache Tika.
:since: 2.19
:supportLevel: Stable
:component-header: Only producer is supported

*Since Camel {since}*

*{component-header}*

The *Tika*: components provides the ability to detect and parse documents with 
Apache Tika. This component uses
https://tika.apache.org/[Apache Tika] as underlying library to work
with documents.

In order to use the Tika component, Maven users will need to add the
following dependency to their `pom.xml`:

*pom.xml*

[source,xml]
----
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-tika</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
----

The TIKA component only supports producer endpoints.


== Options

// component options: START
The Tika component supports 2 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | boolean
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
|===
// component options: END



// endpoint options: START
The Tika endpoint is configured using URI syntax:

----
tika:operation
----

with the following path and query parameters:

=== Path Parameters (1 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *operation* | *Required* Operation type. The value can be one of: parse, detect |  | TikaOperation
|===


=== Query Parameters (7 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | boolean
| *tikaConfig* (producer) | Tika Config |  | TikaConfig
| *tikaConfigUri* (producer) | Tika Config Url |  | String
| *tikaParseOutputEncoding* (producer) | Tika Parse Output Encoding |  | String
| *tikaParseOutputFormat* (producer) | Tika Output Format. Supported output formats. xml: Returns Parsed Content as XML. html: Returns Parsed Content as HTML. text: Returns Parsed Content as Text. textMain: Uses the boilerpipe library to automatically extract the main content from a web page. The value can be one of: xml, html, text, textMain | xml | TikaParseOutputFormat
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|===
// endpoint options: END




== To Detect a file's MIME Type

The file should be placed in the Body.

[source,java]
----
from("direct:start")
        .to("tika:detect");
----

== To Parse a File

The file should be placed in the Body.

[source,java]
----
from("direct:start")
        .to("tika:parse");
----

include::camel-spring-boot::page$tika-starter.adoc[]
