package com.tinkerpop.rexster.server; import com.codahale.metrics.MetricRegistry; import com.tinkerpop.blueprints.Graph; import com.tinkerpop.rexster.RexsterApplicationGraph; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.log4j.Logger; import java.util.ArrayList; import java.util.List; /** * Configure a single existing graph into Rexster. Useful in configuring Rexster for embedded applications. * * @author Marko A. Rodriguez (http://markorodriguez.com) * @author Stephen Mallette (http://stephen.genoprime.com) */ public class DefaultRexsterApplication extends AbstractMapRexsterApplication { private static final Logger logger = Logger.getLogger(DefaultRexsterApplication.class); /** * Constructs the DefaultRexsterApplication. With this constructor all extensions are allowed which is likely * the expected case in an embedded setting. * * @param graphName the name the graph will have in various Rexster contexts. * @param graph a graph instance. */ public DefaultRexsterApplication(final String graphName, final Graph graph) { this(graphName, graph, new ArrayList<String>(){{ add("*:*"); }}, null, null); } /** * Constructs the DefaultRexsterApplication. * * @param graphName the name the graph will have in various Rexster contexts. * @param graph a graph instance. * @param allowableNamespaces list of namespace strings that are allowed for this graph. * @param extensionConfigurations configurations from rexster.xml for extensions. this value may be null. */ public DefaultRexsterApplication(final String graphName, final Graph graph, final List<String> allowableNamespaces, final List<HierarchicalConfiguration> extensionConfigurations, final MetricRegistry metricRegistry) { AbstractMapRexsterApplication.metricRegistry = metricRegistry; final RexsterApplicationGraph rag = new RexsterApplicationGraph(graphName, graph, allowableNamespaces, extensionConfigurations); this.graphs.put(graphName, rag); logger.info(String.format("Graph [%s] loaded", rag.getGraph())); } }