Package com.tinkerpop.blueprints.impls.oraclekv.util

Source Code of com.tinkerpop.blueprints.impls.oraclekv.util.KVGraphConfiguration

package com.tinkerpop.blueprints.impls.oraclekv.util;

import com.tinkerpop.blueprints.Graph;
import com.tinkerpop.blueprints.impls.oraclekv.KVGraph;
import com.tinkerpop.rexster.Tokens;
import com.tinkerpop.rexster.config.GraphConfiguration;
import com.tinkerpop.rexster.config.GraphConfigurationException;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.SubnodeConfiguration;

/**
* Rexster configuration for KVGraph.  Accepts configuration in rexster.xml as follows:
*
* <code>
<graph>
*    <graph-name>kvexample</graph-name>
*    <graph-type>com.tinkerpop.blueprints.impls.oraclekv.util.KVGraphConfiguration</graph-type>
*    <properties>
*      <store-name>kvstore</store-name>
*      <host>my-host</host>
*      <port>5000</port>
*    </properties>
</graph>
* </code>
*
* To deploy copy the KVGraph jar (with dependencies) to the Rexster ext directory.  Make sure that Oracle NoSQL
* is running.
*
* java -jar lib/kvstore-1.2.123.jar kvlite
* Created new kvlite store with args:
* -root ./kvroot -store kvstore -host my-host -port 5000 -admin 5001
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public class KVGraphConfiguration implements GraphConfiguration {

    @Override
    public Graph configureGraphInstance(Configuration configuration) throws GraphConfigurationException {
        final HierarchicalConfiguration graphSectionConfig = (HierarchicalConfiguration) configuration;
        SubnodeConfiguration kvSpecificConfiguration;

        try {
            kvSpecificConfiguration = graphSectionConfig.configurationAt(Tokens.REXSTER_GRAPH_PROPERTIES);
        } catch (IllegalArgumentException iae) {
            throw new GraphConfigurationException("Check graph configuration. Missing or empty configuration element: " + Tokens.REXSTER_GRAPH_PROPERTIES);
        }

        try {

            final String host = kvSpecificConfiguration.getString("host");
            final int port = kvSpecificConfiguration.getInt("port", 5000);
            final String storeName = kvSpecificConfiguration.getString("store-name");
            final String graphName = configuration.getString("graph-name");

            return new KVGraph(graphName, storeName, host, port);

        } catch (Exception ex) {
            throw new GraphConfigurationException(ex);
        }
    }
}
TOP

Related Classes of com.tinkerpop.blueprints.impls.oraclekv.util.KVGraphConfiguration

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.