Package com.tinkerpop.blueprints.impls.neo4j

Source Code of com.tinkerpop.blueprints.impls.neo4j.Neo4jHaGraph

package com.tinkerpop.blueprints.impls.neo4j;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationConverter;
import org.neo4j.graphdb.factory.HighlyAvailableGraphDatabaseFactory;
import org.neo4j.kernel.ha.HighlyAvailableGraphDatabase;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
* A Blueprints implementation of the graph database Neo4j (http://neo4j.org) with High Availability mode.
*
* @author Stephen Mallette
*/
public class Neo4jHaGraph extends Neo4jGraph {

    public Neo4jHaGraph(final String directory) {
        super(new HighlyAvailableGraphDatabaseFactory().newHighlyAvailableDatabase(directory));
    }

    public Neo4jHaGraph(final String directory, final Map<String, String> configuration) {
        super(new HighlyAvailableGraphDatabaseFactory().newHighlyAvailableDatabaseBuilder(directory).setConfig(configuration).newGraphDatabase());
    }

    public Neo4jHaGraph(final HighlyAvailableGraphDatabase rawGraph) {
        super(rawGraph);
    }

    public Neo4jHaGraph(final Configuration configuration) {
        this(configuration.getString("blueprints.neo4jha.directory", null),
                convertConfiguration(configuration.subset("blueprints.neo4jha.conf")));
    }

    private static Map<String,String> convertConfiguration(final Configuration configuration) {
        final Map<String,String> c = new HashMap<String,String>();
        final Iterator<String> keys = configuration.getKeys();
        while (keys.hasNext()) {
            final String k = keys.next();
            c.put(k, configuration.getString(k));
        }
        return c;
    }
}
TOP

Related Classes of com.tinkerpop.blueprints.impls.neo4j.Neo4jHaGraph

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.