Search in sources :

Example 11 with WriteConfiguration

use of org.janusgraph.diskstorage.configuration.WriteConfiguration in project janusgraph by JanusGraph.

the class CQLConfigTest method testGraphConfigUsedByThreadBoundTx.

@Test
public void testGraphConfigUsedByThreadBoundTx() {
    WriteConfiguration wc = getConfiguration();
    wc.set(ConfigElement.getPath(READ_CONSISTENCY), "ALL");
    wc.set(ConfigElement.getPath(WRITE_CONSISTENCY), "LOCAL_QUORUM");
    graph = (StandardJanusGraph) JanusGraphFactory.open(wc);
    StandardJanusGraphTx tx = (StandardJanusGraphTx) graph.getCurrentThreadTx();
    assertEquals("ALL", tx.getTxHandle().getBaseTransactionConfig().getCustomOptions().get(READ_CONSISTENCY));
    assertEquals("LOCAL_QUORUM", tx.getTxHandle().getBaseTransactionConfig().getCustomOptions().get(WRITE_CONSISTENCY));
}
Also used : StandardJanusGraphTx(org.janusgraph.graphdb.transaction.StandardJanusGraphTx) WriteConfiguration(org.janusgraph.diskstorage.configuration.WriteConfiguration) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 12 with WriteConfiguration

use of org.janusgraph.diskstorage.configuration.WriteConfiguration in project janusgraph by JanusGraph.

the class CQLConfigTest method shouldComposeProgrammaticConfigurationWithStringConfigurationAndFailDueToUnnecessaryKeyspaceConfigAdded.

@Test
public void shouldComposeProgrammaticConfigurationWithStringConfigurationAndFailDueToUnnecessaryKeyspaceConfigAdded() {
    WriteConfiguration wc = getConfiguration();
    wc.set(ConfigElement.getPath(BASE_PROGRAMMATIC_CONFIGURATION_ENABLED), true);
    wc.set(ConfigElement.getPath(STRING_CONFIGURATION), DATASTAX_JAVA_DRIVER_STRING_KEYSPACE_ONLY_CONFIGURATION_PATTERN);
    assertThrows(IllegalArgumentException.class, () -> JanusGraphFactory.open(wc));
}
Also used : WriteConfiguration(org.janusgraph.diskstorage.configuration.WriteConfiguration) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 13 with WriteConfiguration

use of org.janusgraph.diskstorage.configuration.WriteConfiguration in project janusgraph by JanusGraph.

the class CQLConfigTest method shouldCreateCQLSessionWithMultipleComposedConfigurations.

@Test
public void shouldCreateCQLSessionWithMultipleComposedConfigurations() throws IOException {
    WriteConfiguration wc = getConfiguration();
    String dataStaxConfiguration = prepareDataStaxConfiguration(wc);
    File tempFile = File.createTempFile("datastaxTempExample", ".conf");
    try {
        tempFile.deleteOnExit();
        FileUtils.writeStringToFile(tempFile, dataStaxConfiguration, Charset.defaultCharset(), false);
        wc.set(ConfigElement.getPath(BASE_PROGRAMMATIC_CONFIGURATION_ENABLED), true);
        wc.set(ConfigElement.getPath(URL_CONFIGURATION), new URL("file", "", tempFile.getAbsolutePath()).toString());
        wc.set(ConfigElement.getPath(FILE_CONFIGURATION), tempFile.getAbsolutePath());
        wc.set(ConfigElement.getPath(STRING_CONFIGURATION), dataStaxConfiguration);
        graph = (StandardJanusGraph) JanusGraphFactory.open(wc);
        assertDoesNotThrow(() -> {
            graph.traversal().V().hasNext();
            graph.tx().rollback();
        });
    } finally {
        tempFile.delete();
    }
}
Also used : WriteConfiguration(org.janusgraph.diskstorage.configuration.WriteConfiguration) File(java.io.File) URL(java.net.URL) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 14 with WriteConfiguration

use of org.janusgraph.diskstorage.configuration.WriteConfiguration in project janusgraph by JanusGraph.

the class CQLConfigTest method testStorageVersionSet.

@Test
public void testStorageVersionSet() {
    WriteConfiguration wc = getConfiguration();
    assertNull(wc.get(ConfigElement.getPath(INITIAL_STORAGE_VERSION), INITIAL_STORAGE_VERSION.getDatatype()));
    wc.set(ConfigElement.getPath(INITIAL_STORAGE_VERSION), JanusGraphConstants.STORAGE_VERSION);
    graph = (StandardJanusGraph) JanusGraphFactory.open(wc);
    JanusGraphManagement mgmt = graph.openManagement();
    assertEquals(JanusGraphConstants.STORAGE_VERSION, (mgmt.get("graph.storage-version")));
    mgmt.rollback();
}
Also used : JanusGraphManagement(org.janusgraph.core.schema.JanusGraphManagement) WriteConfiguration(org.janusgraph.diskstorage.configuration.WriteConfiguration) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 15 with WriteConfiguration

use of org.janusgraph.diskstorage.configuration.WriteConfiguration in project janusgraph by JanusGraph.

the class JanusGraphFactory method open.

/**
 * Opens a {@link JanusGraph} database configured according to the provided configuration.
 * This method shouldn't be called by end users; it is used by internal server processes to
 * open graphs defined at server start that do not include the graphname property.
 *
 * @param configuration Configuration for the graph database
 * @param backupName Backup name for graph
 * @return JanusGraph graph database
 */
public static JanusGraph open(ReadConfiguration configuration, String backupName) {
    final ModifiableConfiguration config = new ModifiableConfiguration(ROOT_NS, (WriteConfiguration) configuration, BasicConfiguration.Restriction.NONE);
    final String graphName = config.has(GRAPH_NAME) ? config.get(GRAPH_NAME) : backupName;
    final JanusGraphManager jgm = JanusGraphManagerUtility.getInstance();
    if (null != graphName) {
        Preconditions.checkNotNull(jgm, JANUS_GRAPH_MANAGER_EXPECTED_STATE_MSG);
        return (JanusGraph) jgm.openGraph(graphName, gName -> new StandardJanusGraph(new GraphDatabaseConfigurationBuilder().build(configuration)));
    } else {
        if (jgm != null) {
            log.warn("You should supply \"graph.graphname\" in your .properties file configuration if you are opening " + "a graph that has not already been opened at server start, i.e. it was " + "defined in your YAML file. This will ensure the graph is tracked by the JanusGraphManager, " + "which will enable autocommit and rollback functionality upon all gremlin script executions. " + "Note that JanusGraphFactory#open(String === shortcut notation) does not support consuming the property " + "\"graph.graphname\" so these graphs should be accessed dynamically by supplying a .properties file here " + "or by using the ConfiguredGraphFactory.");
        }
        return new StandardJanusGraph(new GraphDatabaseConfigurationBuilder().build(configuration));
    }
}
Also used : GRAPH_NAME(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.GRAPH_NAME) StandardStoreManager(org.janusgraph.diskstorage.StandardStoreManager) Spliterators(java.util.Spliterators) Graph(org.apache.tinkerpop.gremlin.structure.Graph) STORAGE_BACKEND(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_BACKEND) LoggerFactory(org.slf4j.LoggerFactory) ConfigOption(org.janusgraph.diskstorage.configuration.ConfigOption) StringUtils(org.apache.commons.lang3.StringUtils) Backend(org.janusgraph.diskstorage.Backend) ROOT_NS(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.ROOT_NS) StandardTransactionLogProcessor(org.janusgraph.graphdb.log.StandardTransactionLogProcessor) WriteConfiguration(org.janusgraph.diskstorage.configuration.WriteConfiguration) GraphDatabaseConfigurationBuilder(org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder) STORAGE_HOSTS(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_HOSTS) StreamSupport(java.util.stream.StreamSupport) JANUS_GRAPH_MANAGER_EXPECTED_STATE_MSG(org.janusgraph.graphdb.management.JanusGraphManager.JANUS_GRAPH_MANAGER_EXPECTED_STATE_MSG) TransactionRecovery(org.janusgraph.core.log.TransactionRecovery) BackendException(org.janusgraph.diskstorage.BackendException) ConfigurationUtil(org.janusgraph.util.system.ConfigurationUtil) Logger(org.slf4j.Logger) LoggerUtil.sanitizeAndLaunder(org.janusgraph.util.system.LoggerUtil.sanitizeAndLaunder) StandardJanusGraph(org.janusgraph.graphdb.database.StandardJanusGraph) STORAGE_DIRECTORY(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_DIRECTORY) CommonsConfiguration(org.janusgraph.diskstorage.configuration.backend.CommonsConfiguration) IOUtils(org.janusgraph.util.system.IOUtils) Set(java.util.Set) Instant(java.time.Instant) STORAGE_NS(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_NS) Collectors(java.util.stream.Collectors) Configuration(org.apache.commons.configuration2.Configuration) File(java.io.File) ConfigurationException(org.apache.commons.configuration2.ex.ConfigurationException) List(java.util.List) PropertiesConfiguration(org.apache.commons.configuration2.PropertiesConfiguration) LogProcessorFramework(org.janusgraph.core.log.LogProcessorFramework) GraphDatabaseConfiguration(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration) JanusGraphManager(org.janusgraph.graphdb.management.JanusGraphManager) INDEX_DIRECTORY(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.INDEX_DIRECTORY) BaseConfiguration(org.apache.commons.configuration2.BaseConfiguration) INDEX_CONF_FILE(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.INDEX_CONF_FILE) BasicConfiguration(org.janusgraph.diskstorage.configuration.BasicConfiguration) STORAGE_CONF_FILE(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_CONF_FILE) Preconditions(com.google.common.base.Preconditions) Pattern(java.util.regex.Pattern) StandardLogProcessorFramework(org.janusgraph.graphdb.log.StandardLogProcessorFramework) INDEX_NS(org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.INDEX_NS) ModifiableConfiguration(org.janusgraph.diskstorage.configuration.ModifiableConfiguration) ReadConfiguration(org.janusgraph.diskstorage.configuration.ReadConfiguration) GraphDatabaseConfigurationBuilder(org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder) StandardJanusGraph(org.janusgraph.graphdb.database.StandardJanusGraph) JanusGraphManager(org.janusgraph.graphdb.management.JanusGraphManager) ModifiableConfiguration(org.janusgraph.diskstorage.configuration.ModifiableConfiguration) StandardJanusGraph(org.janusgraph.graphdb.database.StandardJanusGraph)

Aggregations

WriteConfiguration (org.janusgraph.diskstorage.configuration.WriteConfiguration)40 Test (org.junit.jupiter.api.Test)26 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)21 ModifiableConfiguration (org.janusgraph.diskstorage.configuration.ModifiableConfiguration)7 StandardJanusGraphTx (org.janusgraph.graphdb.transaction.StandardJanusGraphTx)7 BasicConfiguration (org.janusgraph.diskstorage.configuration.BasicConfiguration)6 File (java.io.File)5 GraphDatabaseConfiguration (org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration)5 StandardJanusGraph (org.janusgraph.graphdb.database.StandardJanusGraph)5 Test (org.junit.Test)5 GraphTraversalSource (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource)4 URL (java.net.URL)3 JanusGraphManagement (org.janusgraph.core.schema.JanusGraphManagement)3 Configuration (org.janusgraph.diskstorage.configuration.Configuration)3 RequestLogger (com.datastax.oss.driver.internal.core.tracker.RequestLogger)2 IOException (java.io.IOException)2 StringWriter (java.io.StringWriter)2 Duration (java.time.Duration)2 Set (java.util.Set)2 Collectors (java.util.stream.Collectors)2