///////////////////////////////////////////////////////////////
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
///////////////////////////////////////////////////////////////

:leveloffset: 1

[[extensions,Extensions]]
= Extensions =

== Overview ==

We try to keep the Zest™ Core Runtime as lean as possible, and a lot of the power to the Zest™ Platform comes via its
Extension SPI, which defines clear ways to extend the platform. There are currently the following Extensions types,
each with possibly more than one implementation;

   * Value Serialization
   * Entity Stores
   * Index / Query Engines
   * Entity Caches
   * Metrics Gathering
   * Reindexing
   * Migration

This section will go through each of the available extensions.
The Zest™ Extensions are of varying maturity level and we try to maintain a STATUS (dev-status.xml) file indicating
how good the codebase, documentation and unit tests are for each of the libraries. This is highly subjective and
potentially different individuals will judge this differently, but at least it gives a ballpark idea of the situation
for our users.


:leveloffset: 2

include::../../../../extensions/valueserialization-orgjson/src/docs/vs-orgjson.txt[]

:leveloffset: 2

include::../../../../extensions/valueserialization-jackson/src/docs/vs-jackson.txt[]

:leveloffset: 2

include::../../../../extensions/valueserialization-stax/src/docs/vs-stax.txt[]

:leveloffset: 2

include::../../../../extensions/cache-ehcache/src/docs/cache-ehcache.txt[]

:leveloffset: 2

include::../../../../extensions/cache-memcache/src/docs/cache-memcache.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-memory/src/docs/es-memory.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-file/src/docs/es-file.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-hazelcast/src/docs/es-hazelcast.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-jclouds/src/docs/es-jclouds.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-jdbm/src/docs/es-jdbm.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-leveldb/src/docs/es-leveldb.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-mongodb/src/docs/es-mongodb.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-preferences/src/docs/es-preferences.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-redis/src/docs/es-redis.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-riak/src/docs/es-riak.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-sql/src/docs/es-sql.txt[]

:leveloffset: 2

include::../../../../extensions/entitystore-voldemort/src/docs/es-voldemort.txt[]

:leveloffset: 2

include::../../../../extensions/indexing-elasticsearch/src/docs/index-elasticsearch.txt[]

:leveloffset: 2

include::../../../../extensions/indexing-rdf/src/docs/index-rdf.txt[]

:leveloffset: 2

include::../../../../extensions/indexing-solr/src/docs/index-solr.txt[]

:leveloffset: 2

include::../../../../extensions/indexing-sql/src/docs/index-sql.txt[]

:leveloffset: 2

include::../../../../extensions/metrics-yammer/src/docs/metrics-yammer.txt[]

:leveloffset: 2

include::../../../../extensions/migration/src/docs/migration.txt[]

:leveloffset: 2

include::../../../../extensions/reindexer/src/docs/reindexer.txt[]

:leveloffset: 2

