Project Polygene has retired. For details please refer to its Attic page.
Riak EntityStore
Polygene™
Introduction
Tutorials
Javadoc
Samples
Core
Libraries
Extensions
Tools
Glossary 

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

3.0.0


Assembly

Assembly is done using the provided Assembler:

Traceback (most recent call last):
  File "/Users/paul/.asciidoc/filters/snippet/snippet.py", line 100, in <module>
    for line in snippet(**configuration(indata)):
  File "/Users/paul/.asciidoc/filters/snippet/snippet.py", line 51, in snippet
    sourceFile = open(PATH_PATTERN % locals())
IOError: [Errno 2] No such file or directory: 'extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java'

Configuration

Here are the available configuration properties:

public interface RiakEntityStoreConfiguration
{
    /**
     * 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.