///////////////////////////////////////////////////////////////
 * 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-geode/src/docs/es-geode.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/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

