This project has retired. For details please refer to its Attic page.
Riak EntityStore Starter Template for Bootstrap
Overview
javax.json serialization
javax.xml serialization
MessagePack serialization
Memory EntityStore
File EntityStore
Geode EntityStore
Hazelcast EntityStore
JClouds EntityStore
JDBM EntityStore
LevelDB EntityStore
MongoDB EntityStore
Preferences EntityStore
Redis EntityStore
Riak EntityStore
SQL EntityStore
Ehcache Cache
Memcache Cache
ElasticSearch Index/Query
OpenRDF Index/Query
Apache Solr Index/Query
SQL Index/Query
Codahale Metrics
Migration
Reindexer

Riak EntityStore

code

docs

tests

EntityStore service backed by a Riak bucket.

The EntityStore only supports accessing Riak using protocol buffers. HTTP is not supported since the 2.x serie of the Riak Java client. See the Riak documentation.

Table 61. Artifact

Group IDArtifact IDVersion

org.apache.polygene.extensions

org.apache.polygene.extension.entitystore-riak

0


Assembly

Assembly is done using the provided Assembler:

public void assemble( ModuleAssembly module )
{
  [...snip...]

    new RiakEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
      [...snip...]

}

Configuration

Here are the available configuration properties:

public interface RiakEntityStoreConfiguration extends ConfigurationComposite
{
    /**
     * List of Riak Protocol Buffer hosts.
     *
     * Each entry can contain either an IP address / hostname
     * or an IP address / hostname followed by a column and the host's port.
     *
     * Defaulted to 127.0.0.1 if empty.
     *
     * @return List of Riak nodes
     */
    @UseDefaults
    Property<List<String>> hosts();

    /**
     * User name to use for authentication.
     *
     * @return Authentication user name
     */
    @Optional
    Property<String> username();

    /**
     * Password to use for authentication.
     *
     * @return Authentication password
     */
    @Optional
    Property<String> password();

    /**
     * Type of the keystore used for server certificate authentication.
     *
     * @return Type of the keystore used for server certificate authentication
     */
    @Optional
    @OneOf( { "PKCS12", "JCEKS", "JKS" } )
    Property<String> truststoreType();

    /**
     * Path of the keystore used for server certificate authentication.
     *
     * @return Path of the keystore used for server certificate authentication
     */
    @Optional
    Property<String> truststorePath();

    /**
     * Password of the keystore used for server certificate authentication.
     *
     * @return Password of the keystore used for server certificate authentication
     */
    @Optional
    Property<String> truststorePassword();

    /**
     * Type of the keystore used for client certificate authentication.
     *
     * @return Type of the keystore used for client certificate authentication
     */
    @Optional
    @OneOf( { "PKCS12", "JCEKS", "JKS" } )
    Property<String> keystoreType();

    /**
     * Path of the keystore used for client certificate authentication.
     *
     * @return Path of the keystore used for client certificate authentication
     */
    @Optional
    Property<String> keystorePath();

    /**
     * Password of the keystore used for client certificate authentication.
     *
     * @return Password of the keystore used for client certificate authentication
     */
    @Optional
    Property<String> keystorePassword();

    /**
     * Password of the key used for client certificate authentication.
     *
     * @return Password of the key used for client certificate authentication
     */
    @Optional
    Property<String> keyPassword();

    /**
     * Riak Bucket where Entities state will be stored.
     *
     * Defaulted to "polygene:entities".
     *
     * @return Riak bucket name
     */
    @UseDefaults( "polygene:entities" )
    Property<String> bucket();

    /**
     * Cluster execution attempts.
     *
     * @return Cluster execution attempts
     */
    @Optional
    Property<Integer> clusterExecutionAttempts();

    /**
     * Minimum connections per node.
     *
     * @return Minimum connections per node
     */
    @Optional
    Property<Integer> minConnections();

    /**
     * Maximum connections per node.
     *
     * @return Maximum connections per node
     */
    @Optional
    Property<Integer> maxConnections();

    /**
     * Block on maximum connections.
     *
     * @return Block on maximum connections
     */
    @UseDefaults
    Property<Boolean> blockOnMaxConnections();

    /**
     * Connection timeout.
     *
     * @return Connection timeout
     */
    @Optional
    Property<Integer> connectionTimeout();

    /**
     * Idle timeout.
     *
     * @return idle timeout
     */
    @Optional
    Property<Integer> idleTimeout();
}

All authentication related properties are optional. By default no authentication is used. As soon as you provide a username, authentication is set up. Please note that you should then at least provide truststoreType, truststorePath and truststorePassword. To use client certificate authentication, set keystoreType, keystorePath, keystorePassword and keyPassword.