├── .backportrc.json ├── .codecov.yml ├── .editorconfig ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── config.yml │ ├── feature-request.md │ └── flaky-test.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── backport.yml │ ├── ci-backend-cql-dummy.yml │ ├── ci-backend-cql.yml │ ├── ci-backend-hbase-dummy.yml │ ├── ci-backend-hbase.yml │ ├── ci-backend-scylla-dummy.yml │ ├── ci-backend-scylla.yml │ ├── ci-benchmark.yml │ ├── ci-core-dummy.yml │ ├── ci-core.yml │ ├── ci-docs.yml │ ├── ci-index-es-dummy.yml │ ├── ci-index-es.yml │ ├── ci-index-solr-dummy.yml │ ├── ci-index-solr.yml │ ├── ci-publish-commit.yml │ ├── ci-publish-official.yml │ ├── ci-release-dummy.yml │ ├── ci-release.yml │ ├── docker-release-tags.yml │ └── lint-proto.yml ├── .gitignore ├── .remarkrc.yml ├── APACHE-2.0.txt ├── AUTHORS.txt ├── BUILDING.md ├── CC-BY-4.0.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.txt ├── DCO.txt ├── KEYS ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── RELEASING.md ├── SECURITY.md ├── TESTING.md ├── cassandra-hadoop-util ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── apache │ └── cassandra │ ├── db │ └── SystemKeyspace.java │ ├── hadoop │ ├── ColumnFamilySplit.java │ ├── ConfigHelper.java │ ├── HadoopCompat.java │ ├── ReporterWrapper.java │ └── cql3 │ │ ├── CqlClientHelper.java │ │ ├── CqlConfigHelper.java │ │ ├── CqlInputFormat.java │ │ ├── CqlRecordReader.java │ │ └── LimitedLocalNodeFirstLocalBalancingPolicy.java │ ├── schema │ └── SchemaConstants.java │ └── utils │ ├── AbstractIterator.java │ ├── BiMultiValMap.java │ └── Pair.java ├── docs.Dockerfile ├── docs ├── CNAME ├── advanced-topics │ ├── bigtablemodel.png │ ├── commit-releases.md │ ├── custom-vertex-id.md │ ├── data-model.md │ ├── eventual-consistency.md │ ├── executor-service.md │ ├── github_distribution_builds.png │ ├── github_expired_distribution_builds.png │ ├── github_release_ci.png │ ├── hadoop.md │ ├── janusgraph-bus.md │ ├── partitioning.md │ ├── relationlayout.png │ ├── serializer.md │ ├── stale-index.md │ ├── storagelayout.png │ ├── technical-limitations.md │ └── transaction-log.md ├── basics │ ├── connecting │ │ ├── dotnet.md │ │ ├── index.md │ │ ├── java.md │ │ └── python.md │ ├── search-predicates.md │ └── transactions.md ├── cassandra-small.svg ├── changelog.md ├── common-questions.md ├── configs │ ├── configuration-reference.md │ ├── example-config.md │ ├── index.md │ └── janusgraph-cfg.md ├── development.md ├── favicon.ico ├── getting-started │ ├── architecture-layer-diagram.svg │ ├── architecture.md │ ├── basic-usage.md │ ├── graph-of-the-gods-2.png │ ├── gremlin.md │ └── installation.md ├── index-backend │ ├── direct-index-query.md │ ├── elasticsearch.md │ ├── field-mapping.md │ ├── index.md │ ├── lucene.md │ ├── solr.md │ └── text-search.md ├── index.md ├── janusgraph-logomark.svg ├── janusgraph.png ├── operations │ ├── batch-processing.md │ ├── bulk-loading.md │ ├── cache.md │ ├── configured-graph-factory.md │ ├── container.md │ ├── deployment.md │ ├── dynamic-graphs.md │ ├── images │ │ ├── advanced-scenario.svg │ │ ├── advanced-scenario.xml │ │ ├── getting-started-scenario.svg │ │ ├── getting-started-scenario.xml │ │ ├── minimalist-scenario.svg │ │ └── minimalist-scenario.xml │ ├── management.md │ ├── migrating-thrift.md │ ├── migrating-titan.md │ ├── monitoring.md │ ├── recovery.md │ └── server.md ├── schema │ ├── advschema.md │ ├── index-management │ │ ├── index-lifecycle.md │ │ ├── index-lifecycle.svg │ │ ├── index-performance.md │ │ ├── index-reindexing.md │ │ └── index-removal.md │ ├── index.md │ └── schema-init-strategies.md ├── storage-backend │ ├── bdb.md │ ├── bigtable.md │ ├── cassandra.md │ ├── cloud-bigtable.svg │ ├── hbase.md │ ├── index.md │ ├── inmemorybackend.md │ ├── modes-distributed.png │ ├── modes-local.png │ ├── modes-rexster.png │ ├── scylladb.md │ └── scylladb.svg └── theme │ ├── extra.css │ ├── js │ └── .gitkeep │ └── structor-menu.js.gotmpl ├── janusgraph-all ├── pom.xml └── src │ ├── main │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShimService │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ └── core │ │ └── EnsureCacheTest.java │ └── resources │ └── log4j2-test.xml ├── janusgraph-backend-testutils ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── janusgraph │ │ ├── DaemonRunner.java │ │ ├── JanusGraphBaseStoreFeaturesTest.java │ │ ├── StorageSetup.java │ │ ├── TestByteBuffer.java │ │ ├── TestCategory.java │ │ ├── blueprints │ │ ├── AbstractJanusGraphComputerProvider.java │ │ ├── AbstractJanusGraphProvider.java │ │ └── JanusGraphTestListener.java │ │ ├── core │ │ ├── AbstractConfiguredGraphFactoryTest.java │ │ └── attribute │ │ │ └── TextArgument.java │ │ ├── diskstorage │ │ ├── AbstractKCVSTest.java │ │ ├── DistributedStoreManagerTest.java │ │ ├── IDAuthorityTest.java │ │ ├── KeyColumn.java │ │ ├── KeyColumnValueStoreTest.java │ │ ├── KeyColumnValueStoreUtil.java │ │ ├── KeyValueStoreTest.java │ │ ├── KeyValueStoreUtil.java │ │ ├── LockKeyColumnValueStoreTest.java │ │ ├── MultiWriteKeyColumnValueStoreTest.java │ │ ├── SimpleScanJob.java │ │ ├── SimpleScanJobRunner.java │ │ ├── configuration │ │ │ └── WritableConfigurationTest.java │ │ ├── indexing │ │ │ └── IndexProviderTest.java │ │ ├── log │ │ │ ├── KCVSLogTest.java │ │ │ └── LogTest.java │ │ └── util │ │ │ ├── TestLockerManager.java │ │ │ └── TestTimeUtility.java │ │ ├── graphdb │ │ ├── GraphDatabaseConfigurationInstanceExecutorServiceTest.java │ │ ├── GraphDatabaseConfigurationInstanceIdTest.java │ │ ├── IndexMetricTest.java │ │ ├── JanusGraphBaseTest.java │ │ ├── JanusGraphConcurrentTest.java │ │ ├── JanusGraphCustomIdIndexTest.java │ │ ├── JanusGraphCustomIdTest.java │ │ ├── JanusGraphEventualGraphTest.java │ │ ├── JanusGraphIndexTest.java │ │ ├── JanusGraphIoTest.java │ │ ├── JanusGraphIterativeBenchmark.java │ │ ├── JanusGraphOperationCountingTest.java │ │ ├── JanusGraphPartitionGraphTest.java │ │ ├── JanusGraphPerformanceMemoryTest.java │ │ ├── JanusGraphTest.java │ │ ├── TestMockIndexProvider.java │ │ ├── TestMockLog.java │ │ ├── database │ │ │ ├── LazyLoadGraphTest.java │ │ │ └── management │ │ │ │ └── ManagementTest.java │ │ └── serializer │ │ │ ├── SpecialInt.java │ │ │ └── SpecialIntSerializer.java │ │ ├── olap │ │ ├── OLAPTest.java │ │ ├── PageRankMapReduce.java │ │ ├── PageRankVertexProgram.java │ │ ├── ShortestDistanceMapReduce.java │ │ ├── ShortestDistanceMessageCombiner.java │ │ └── ShortestDistanceVertexProgram.java │ │ └── testutil │ │ ├── FeatureFlag.java │ │ ├── FeatureRequirementCondition.java │ │ ├── JanusGraphAssert.java │ │ ├── JanusGraphFeature.java │ │ ├── MemoryAssess.java │ │ ├── RandomGenerator.java │ │ ├── RetryInfo.java │ │ ├── RetryTemplateContext.java │ │ ├── RetryingTestExecutionExtension.java │ │ ├── RetryingTestFailure.java │ │ ├── TestGraphConfigs.java │ │ └── TestTimestamps.java │ └── resources │ └── test_simple_schema_example.json ├── janusgraph-benchmark ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── janusgraph │ │ ├── BackPressureBenchmark.java │ │ ├── BenchmarkRunner.java │ │ ├── CQLCompositeIndexInlinePropBenchmark.java │ │ ├── CQLMultiQueryBenchmark.java │ │ ├── CQLMultiQueryDropBenchmark.java │ │ ├── CQLMultiQueryHasStepBenchmark.java │ │ ├── CQLMultiQueryMultiSlicesBenchmark.java │ │ ├── CQLMultiQueryPropertiesBenchmark.java │ │ ├── GraphCentricQueryBenchmark.java │ │ ├── JanusGraphSpeedBenchmark.java │ │ ├── MgmtOlapJobBenchmark.java │ │ └── StaticArrayEntryListBenchmark.java │ └── resources │ └── log4j2.xml ├── janusgraph-berkeleyje ├── pom.xml └── src │ ├── assembly │ └── distribution.xml │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── berkeleyje │ │ ├── BerkeleyJEKeyValueStore.java │ │ ├── BerkeleyJEStoreManager.java │ │ └── BerkeleyJETx.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── BerkeleyStorageSetup.java │ │ ├── blueprints │ │ ├── BerkeleyGraphComputerProvider.java │ │ ├── BerkeleyGraphProvider.java │ │ ├── BerkeleyMultiQueryGraphProvider.java │ │ ├── process │ │ │ ├── BerkeleyJanusGraphComputerTest.java │ │ │ ├── BerkeleyJanusGraphProcessTest.java │ │ │ ├── BerkeleyMultiQueryJanusGraphProcessTest.java │ │ │ ├── BerkeleyProcessComputerSuite.java │ │ │ └── BerkeleyProcessStandardSuite.java │ │ └── structure │ │ │ └── BerkeleyJanusGraphStructureTest.java │ │ ├── diskstorage │ │ └── berkeleyje │ │ │ ├── BerkeleyFixedLengthKCVSTest.java │ │ │ ├── BerkeleyKeyValueTest.java │ │ │ ├── BerkeleyLogTest.java │ │ │ └── BerkeleyVariableLengthKCVSTest.java │ │ └── graphdb │ │ ├── BerkeleyTransactionTest.java │ │ ├── berkeleyje │ │ ├── BerkeleyGraphConcurrentTest.java │ │ ├── BerkeleyGraphPerformanceMemoryTest.java │ │ ├── BerkeleyGraphTest.java │ │ ├── BerkeleyOLAPTest.java │ │ ├── BerkeleyOperationCountingTest.java │ │ └── BerkeleyPartitionGraphTest.java │ │ └── database │ │ └── management │ │ └── BerkeleyManagementTest.java │ └── resources │ ├── log4j2-test.xml │ └── rexster-fragment.xml ├── janusgraph-bigtable └── pom.xml ├── janusgraph-core ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── janusgraph │ │ │ ├── core │ │ │ ├── BaseVertexQuery.java │ │ │ ├── Cardinality.java │ │ │ ├── ConfiguredGraphFactory.java │ │ │ ├── Connection.java │ │ │ ├── EdgeLabel.java │ │ │ ├── EmptyJanusGraphVertexProperty.java │ │ │ ├── Idfiable.java │ │ │ ├── InvalidElementException.java │ │ │ ├── InvalidIDException.java │ │ │ ├── JanusGraph.java │ │ │ ├── JanusGraphComputer.java │ │ │ ├── JanusGraphConfigurationException.java │ │ │ ├── JanusGraphEdge.java │ │ │ ├── JanusGraphElement.java │ │ │ ├── JanusGraphException.java │ │ │ ├── JanusGraphFactory.java │ │ │ ├── JanusGraphIndexQuery.java │ │ │ ├── JanusGraphLazyEdge.java │ │ │ ├── JanusGraphLazyRelation.java │ │ │ ├── JanusGraphLazyRelationConstructor.java │ │ │ ├── JanusGraphLazyVertexProperty.java │ │ │ ├── JanusGraphManagerUtility.java │ │ │ ├── JanusGraphMultiVertexQuery.java │ │ │ ├── JanusGraphProperty.java │ │ │ ├── JanusGraphQuery.java │ │ │ ├── JanusGraphRelation.java │ │ │ ├── JanusGraphTransaction.java │ │ │ ├── JanusGraphVertex.java │ │ │ ├── JanusGraphVertexProperty.java │ │ │ ├── JanusGraphVertexQuery.java │ │ │ ├── MixedIndexAggQuery.java │ │ │ ├── Multiplicity.java │ │ │ ├── Namifiable.java │ │ │ ├── PropertyKey.java │ │ │ ├── QueryDescription.java │ │ │ ├── QueryException.java │ │ │ ├── ReadOnlyTransactionException.java │ │ │ ├── RelationType.java │ │ │ ├── SchemaViolationException.java │ │ │ ├── Transaction.java │ │ │ ├── TransactionBuilder.java │ │ │ ├── VertexLabel.java │ │ │ ├── VertexList.java │ │ │ ├── attribute │ │ │ │ ├── AttributeSerializer.java │ │ │ │ └── GeoshapeSerializer.java │ │ │ ├── log │ │ │ │ ├── Change.java │ │ │ │ ├── ChangeProcessor.java │ │ │ │ ├── ChangeState.java │ │ │ │ ├── LogProcessorBuilder.java │ │ │ │ ├── LogProcessorFramework.java │ │ │ │ ├── TransactionId.java │ │ │ │ └── TransactionRecovery.java │ │ │ ├── schema │ │ │ │ ├── CompositeIndexInfo.java │ │ │ │ ├── ConsistencyModifier.java │ │ │ │ ├── DefaultSchemaMaker.java │ │ │ │ ├── DisableDefaultSchemaMaker.java │ │ │ │ ├── EdgeLabelMaker.java │ │ │ │ ├── IgnorePropertySchemaMaker.java │ │ │ │ ├── Index.java │ │ │ │ ├── IndicesActivationType.java │ │ │ │ ├── JanusGraphConfiguration.java │ │ │ │ ├── JanusGraphDefaultSchemaMaker.java │ │ │ │ ├── JanusGraphIndex.java │ │ │ │ ├── JanusGraphManagement.java │ │ │ │ ├── JanusGraphSchemaElement.java │ │ │ │ ├── JanusGraphSchemaType.java │ │ │ │ ├── JobStatus.java │ │ │ │ ├── JsonSchemaInitStrategy.java │ │ │ │ ├── Mapping.java │ │ │ │ ├── NoneSchemaInitStrategy.java │ │ │ │ ├── Parameter.java │ │ │ │ ├── PropertyKeyMaker.java │ │ │ │ ├── RelationTypeIndex.java │ │ │ │ ├── RelationTypeMaker.java │ │ │ │ ├── SchemaAction.java │ │ │ │ ├── SchemaInitStrategy.java │ │ │ │ ├── SchemaInitType.java │ │ │ │ ├── SchemaInitializationManager.java │ │ │ │ ├── SchemaInspector.java │ │ │ │ ├── SchemaManager.java │ │ │ │ ├── SchemaStatus.java │ │ │ │ ├── Tp3DefaultSchemaMaker.java │ │ │ │ ├── VertexLabelMaker.java │ │ │ │ └── json │ │ │ │ │ ├── creator │ │ │ │ │ ├── GeneralJsonSchemaCreator.java │ │ │ │ │ ├── JsonEdgeSchemaCreator.java │ │ │ │ │ ├── JsonPropertySchemaCreator.java │ │ │ │ │ ├── JsonSchemaCreationContext.java │ │ │ │ │ ├── JsonSchemaCreator.java │ │ │ │ │ ├── JsonVertexSchemaCreator.java │ │ │ │ │ ├── SchemaCreationException.java │ │ │ │ │ └── index │ │ │ │ │ │ ├── AbstractJsonGraphCentricIndexCreator.java │ │ │ │ │ │ ├── AbstractJsonIndexCreator.java │ │ │ │ │ │ ├── AbstractJsonVertexCentricIndexCreator.java │ │ │ │ │ │ ├── JsonCompositeIndexCreator.java │ │ │ │ │ │ ├── JsonMixedIndexCreator.java │ │ │ │ │ │ ├── JsonVertexCentricEdgeIndexCreator.java │ │ │ │ │ │ └── JsonVertexCentricPropertyIndexCreator.java │ │ │ │ │ ├── definition │ │ │ │ │ ├── JsonEdgeLabelDefinition.java │ │ │ │ │ ├── JsonParameterDefinition.java │ │ │ │ │ ├── JsonPropertyKeyDefinition.java │ │ │ │ │ ├── JsonSchemaDefinition.java │ │ │ │ │ ├── JsonVertexLabelDefinition.java │ │ │ │ │ └── index │ │ │ │ │ │ ├── AbstractJsonGraphCentricIndexDefinition.java │ │ │ │ │ │ ├── AbstractJsonIndexDefinition.java │ │ │ │ │ │ ├── AbstractJsonVertexCentricIndexDefinition.java │ │ │ │ │ │ ├── JsonCompositeIndexDefinition.java │ │ │ │ │ │ ├── JsonIndexedPropertyKeyDefinition.java │ │ │ │ │ │ ├── JsonMixedIndexDefinition.java │ │ │ │ │ │ ├── JsonVertexCentricEdgeIndexDefinition.java │ │ │ │ │ │ └── JsonVertexCentricPropertyIndexDefinition.java │ │ │ │ │ └── parser │ │ │ │ │ ├── BooleanJsonParameterParser.java │ │ │ │ │ ├── ByteJsonParameterParser.java │ │ │ │ │ ├── DoubleJsonParameterParser.java │ │ │ │ │ ├── EnumJsonParameterParser.java │ │ │ │ │ ├── FloatJsonParameterParser.java │ │ │ │ │ ├── IntegerJsonParameterParser.java │ │ │ │ │ ├── JsonParameterDefinitionParser.java │ │ │ │ │ ├── JsonParameterParser.java │ │ │ │ │ ├── LongJsonParameterParser.java │ │ │ │ │ ├── ShortJsonParameterParser.java │ │ │ │ │ └── StringJsonParameterParser.java │ │ │ └── util │ │ │ │ ├── GraphFactoryUtils.java │ │ │ │ ├── JsonUtil.java │ │ │ │ ├── ManagementUtil.java │ │ │ │ └── ReflectiveConfigOptionLoader.java │ │ │ ├── diskstorage │ │ │ ├── Backend.java │ │ │ ├── BackendException.java │ │ │ ├── BackendTransaction.java │ │ │ ├── BaseTransaction.java │ │ │ ├── BaseTransactionConfig.java │ │ │ ├── BaseTransactionConfigurable.java │ │ │ ├── Entry.java │ │ │ ├── EntryList.java │ │ │ ├── EntryMetaData.java │ │ │ ├── IDAuthority.java │ │ │ ├── IDBlock.java │ │ │ ├── LoggableTransaction.java │ │ │ ├── MetaAnnotatable.java │ │ │ ├── MetaAnnotated.java │ │ │ ├── Mutation.java │ │ │ ├── PermanentBackendException.java │ │ │ ├── ReadBuffer.java │ │ │ ├── ResourceUnavailableException.java │ │ │ ├── ScanBuffer.java │ │ │ ├── StandardIndexProvider.java │ │ │ ├── StandardStoreManager.java │ │ │ ├── StaticBuffer.java │ │ │ ├── StoreMetaData.java │ │ │ ├── TemporaryBackendException.java │ │ │ ├── WriteBuffer.java │ │ │ ├── common │ │ │ │ ├── AbstractStoreManager.java │ │ │ │ ├── AbstractStoreTransaction.java │ │ │ │ ├── DistributedStoreManager.java │ │ │ │ └── LocalStoreManager.java │ │ │ ├── configuration │ │ │ │ ├── AbstractConfiguration.java │ │ │ │ ├── BasicConfiguration.java │ │ │ │ ├── ConcurrentWriteConfiguration.java │ │ │ │ ├── ConfigElement.java │ │ │ │ ├── ConfigNamespace.java │ │ │ │ ├── ConfigOption.java │ │ │ │ ├── Configuration.java │ │ │ │ ├── ExecutorServiceBuilder.java │ │ │ │ ├── ExecutorServiceConfiguration.java │ │ │ │ ├── ExecutorServiceInstrumentation.java │ │ │ │ ├── MergedConfiguration.java │ │ │ │ ├── MixedConfiguration.java │ │ │ │ ├── ModifiableConfiguration.java │ │ │ │ ├── ReadConfiguration.java │ │ │ │ ├── SystemConfiguration.java │ │ │ │ ├── TransactionalConfiguration.java │ │ │ │ ├── UserModifiableConfiguration.java │ │ │ │ ├── WriteConfiguration.java │ │ │ │ ├── backend │ │ │ │ │ ├── CommonsConfiguration.java │ │ │ │ │ ├── KCVSConfiguration.java │ │ │ │ │ └── builder │ │ │ │ │ │ └── KCVSConfigurationBuilder.java │ │ │ │ ├── builder │ │ │ │ │ ├── ModifiableConfigurationBuilder.java │ │ │ │ │ └── ReadConfigurationBuilder.java │ │ │ │ └── converter │ │ │ │ │ └── ReadConfigurationConverter.java │ │ │ ├── idmanagement │ │ │ │ ├── AbstractIDAuthority.java │ │ │ │ ├── ConflictAvoidanceMode.java │ │ │ │ └── ConsistentKeyIDAuthority.java │ │ │ ├── indexing │ │ │ │ ├── IndexEntry.java │ │ │ │ ├── IndexFeatures.java │ │ │ │ ├── IndexInformation.java │ │ │ │ ├── IndexMutation.java │ │ │ │ ├── IndexProvider.java │ │ │ │ ├── IndexQuery.java │ │ │ │ ├── IndexTransaction.java │ │ │ │ ├── KeyInformation.java │ │ │ │ ├── RawQuery.java │ │ │ │ └── StandardKeyInformation.java │ │ │ ├── keycolumnvalue │ │ │ │ ├── KCVMutation.java │ │ │ │ ├── KCVSManagerProxy.java │ │ │ │ ├── KCVSProxy.java │ │ │ │ ├── KCVSUtil.java │ │ │ │ ├── KeyColumnValueStore.java │ │ │ │ ├── KeyColumnValueStoreManager.java │ │ │ │ ├── KeyIterator.java │ │ │ │ ├── KeyRange.java │ │ │ │ ├── KeyRangeQuery.java │ │ │ │ ├── KeySliceQuery.java │ │ │ │ ├── KeySlicesIterator.java │ │ │ │ ├── KeysQueriesGroup.java │ │ │ │ ├── MultiKeysQueryGroups.java │ │ │ │ ├── MultiQueriesByKeysGroupsContext.java │ │ │ │ ├── MultiSlicesQuery.java │ │ │ │ ├── SliceQuery.java │ │ │ │ ├── StandardStoreFeatures.java │ │ │ │ ├── StoreFeatures.java │ │ │ │ ├── StoreManager.java │ │ │ │ ├── StoreTransaction.java │ │ │ │ ├── cache │ │ │ │ │ ├── CachableStaticBuffer.java │ │ │ │ │ ├── CacheTransaction.java │ │ │ │ │ ├── ExpirationKCVSCache.java │ │ │ │ │ ├── KCVEntryMutation.java │ │ │ │ │ ├── KCVSCache.java │ │ │ │ │ └── NoKCVSCache.java │ │ │ │ ├── keyvalue │ │ │ │ │ ├── BaseKeyColumnValueAdapter.java │ │ │ │ │ ├── KVMutation.java │ │ │ │ │ ├── KVQuery.java │ │ │ │ │ ├── KVUtil.java │ │ │ │ │ ├── KeySelector.java │ │ │ │ │ ├── KeyValueEntry.java │ │ │ │ │ ├── KeyValueStore.java │ │ │ │ │ ├── KeyValueStoreManager.java │ │ │ │ │ ├── OrderedKeyValueStore.java │ │ │ │ │ ├── OrderedKeyValueStoreAdapter.java │ │ │ │ │ ├── OrderedKeyValueStoreManager.java │ │ │ │ │ └── OrderedKeyValueStoreManagerAdapter.java │ │ │ │ ├── scan │ │ │ │ │ ├── CompletedJobFuture.java │ │ │ │ │ ├── EmptyScanJobFuture.java │ │ │ │ │ ├── FailedJobFuture.java │ │ │ │ │ ├── MultiThreadsRowsCollector.java │ │ │ │ │ ├── RowsCollector.java │ │ │ │ │ ├── ScanJob.java │ │ │ │ │ ├── ScanJobFuture.java │ │ │ │ │ ├── ScanMetrics.java │ │ │ │ │ ├── SingleThreadRowsCollector.java │ │ │ │ │ ├── StandardScanMetrics.java │ │ │ │ │ ├── StandardScanner.java │ │ │ │ │ └── StandardScannerExecutor.java │ │ │ │ └── ttl │ │ │ │ │ ├── TTLKCVS.java │ │ │ │ │ └── TTLKCVSManager.java │ │ │ ├── locking │ │ │ │ ├── AbstractLocker.java │ │ │ │ ├── LocalLockMediator.java │ │ │ │ ├── LocalLockMediatorProvider.java │ │ │ │ ├── LocalLockMediators.java │ │ │ │ ├── LockStatus.java │ │ │ │ ├── Locker.java │ │ │ │ ├── LockerProvider.java │ │ │ │ ├── LockerState.java │ │ │ │ ├── PermanentLockingException.java │ │ │ │ ├── TemporaryLockingException.java │ │ │ │ └── consistentkey │ │ │ │ │ ├── ConsistentKeyLockStatus.java │ │ │ │ │ ├── ConsistentKeyLocker.java │ │ │ │ │ ├── ConsistentKeyLockerSerializer.java │ │ │ │ │ ├── ExpectedValueCheckingStore.java │ │ │ │ │ ├── ExpectedValueCheckingStoreManager.java │ │ │ │ │ ├── ExpectedValueCheckingTransaction.java │ │ │ │ │ ├── ExpiredLockException.java │ │ │ │ │ ├── LockCleanerService.java │ │ │ │ │ ├── StandardLockCleanerRunnable.java │ │ │ │ │ ├── StandardLockCleanerService.java │ │ │ │ │ └── TimestampRid.java │ │ │ ├── log │ │ │ │ ├── Log.java │ │ │ │ ├── LogManager.java │ │ │ │ ├── Message.java │ │ │ │ ├── MessageReader.java │ │ │ │ ├── ReadMarker.java │ │ │ │ ├── kcvs │ │ │ │ │ ├── ExternalCachePersistor.java │ │ │ │ │ ├── ExternalPersistor.java │ │ │ │ │ ├── KCVSLog.java │ │ │ │ │ ├── KCVSLogManager.java │ │ │ │ │ └── KCVSMessage.java │ │ │ │ └── util │ │ │ │ │ ├── AbstractMessage.java │ │ │ │ │ ├── FutureMessage.java │ │ │ │ │ └── ProcessMessageJob.java │ │ │ └── util │ │ │ │ ├── ArrayUtil.java │ │ │ │ ├── BackendCompression.java │ │ │ │ ├── BackendOperation.java │ │ │ │ ├── BaseStaticArrayEntry.java │ │ │ │ ├── BufferUtil.java │ │ │ │ ├── ByteBufferUtil.java │ │ │ │ ├── CacheMetricsAction.java │ │ │ │ ├── ChunkedJobDefinition.java │ │ │ │ ├── CompletableFutureUtil.java │ │ │ │ ├── DefaultTransaction.java │ │ │ │ ├── DirectoryUtil.java │ │ │ │ ├── EntryArrayList.java │ │ │ │ ├── EntryListComputationContext.java │ │ │ │ ├── HashUtility.java │ │ │ │ ├── HashingUtil.java │ │ │ │ ├── Hex.java │ │ │ │ ├── IOCallable.java │ │ │ │ ├── KeyColumn.java │ │ │ │ ├── MetricInstrumentedIndexProvider.java │ │ │ │ ├── MetricInstrumentedIterator.java │ │ │ │ ├── MetricInstrumentedSlicesIterator.java │ │ │ │ ├── MetricInstrumentedStore.java │ │ │ │ ├── MetricInstrumentedStoreManager.java │ │ │ │ ├── NoLock.java │ │ │ │ ├── ReadArrayBuffer.java │ │ │ │ ├── RecordIterator.java │ │ │ │ ├── StandardBaseTransactionConfig.java │ │ │ │ ├── StaticArrayBuffer.java │ │ │ │ ├── StaticArrayEntry.java │ │ │ │ ├── StaticArrayEntryList.java │ │ │ │ ├── StorageCallable.java │ │ │ │ ├── StorageRunnable.java │ │ │ │ ├── UncaughtExceptionLogger.java │ │ │ │ ├── UncheckedCallable.java │ │ │ │ ├── WriteBufferUtil.java │ │ │ │ ├── WriteByteBuffer.java │ │ │ │ ├── backpressure │ │ │ │ ├── PassAllQueryBackPressure.java │ │ │ │ ├── QueryBackPressure.java │ │ │ │ ├── SemaphoreProtectedReleaseQueryBackPressure.java │ │ │ │ ├── SemaphoreQueryBackPressure.java │ │ │ │ └── builder │ │ │ │ │ └── QueryBackPressureBuilder.java │ │ │ │ └── time │ │ │ │ ├── Durations.java │ │ │ │ ├── Temporals.java │ │ │ │ ├── Timer.java │ │ │ │ ├── TimestampProvider.java │ │ │ │ └── TimestampProviders.java │ │ │ ├── example │ │ │ └── GraphOfTheGodsFactory.java │ │ │ ├── graphdb │ │ │ ├── configuration │ │ │ │ ├── ConfigName.java │ │ │ │ ├── GraphDatabaseConfiguration.java │ │ │ │ ├── JanusGraphConstants.java │ │ │ │ ├── PreInitializeConfigOptions.java │ │ │ │ ├── RegisteredAttributeClass.java │ │ │ │ ├── builder │ │ │ │ │ └── GraphDatabaseConfigurationBuilder.java │ │ │ │ ├── converter │ │ │ │ │ └── RegisteredAttributeClassesConverter.java │ │ │ │ └── validator │ │ │ │ │ └── CompatibilityValidator.java │ │ │ ├── database │ │ │ │ ├── EdgeSerializer.java │ │ │ │ ├── IndexRecordEntry.java │ │ │ │ ├── IndexSerializer.java │ │ │ │ ├── RelationFactory.java │ │ │ │ ├── RelationQueryCache.java │ │ │ │ ├── RelationReader.java │ │ │ │ ├── StandardJanusGraph.java │ │ │ │ ├── cache │ │ │ │ │ ├── CacheInvalidationService.java │ │ │ │ │ ├── KCVSCacheInvalidationService.java │ │ │ │ │ ├── MetricInstrumentedSchemaCache.java │ │ │ │ │ ├── SchemaCache.java │ │ │ │ │ └── StandardSchemaCache.java │ │ │ │ ├── idassigner │ │ │ │ │ ├── IDBlockSizer.java │ │ │ │ │ ├── IDPool.java │ │ │ │ │ ├── IDPoolExhaustedException.java │ │ │ │ │ ├── StandardIDPool.java │ │ │ │ │ ├── StaticIDBlockSizer.java │ │ │ │ │ ├── VertexIDAssigner.java │ │ │ │ │ └── placement │ │ │ │ │ │ ├── IDPlacementStrategy.java │ │ │ │ │ │ ├── PartitionAssignment.java │ │ │ │ │ │ ├── PartitionIDRange.java │ │ │ │ │ │ ├── PropertyPlacementStrategy.java │ │ │ │ │ │ ├── SimpleBulkPlacementStrategy.java │ │ │ │ │ │ └── SimplePartitionAssignment.java │ │ │ │ ├── idhandling │ │ │ │ │ ├── IDHandler.java │ │ │ │ │ ├── VariableLong.java │ │ │ │ │ └── VariableString.java │ │ │ │ ├── index │ │ │ │ │ ├── IndexInfoRetriever.java │ │ │ │ │ ├── IndexMutationType.java │ │ │ │ │ ├── IndexRecords.java │ │ │ │ │ ├── IndexUpdate.java │ │ │ │ │ └── IndexUpdateContainer.java │ │ │ │ ├── log │ │ │ │ │ ├── LogTxMeta.java │ │ │ │ │ ├── LogTxStatus.java │ │ │ │ │ └── TransactionLogHeader.java │ │ │ │ ├── management │ │ │ │ │ ├── AbstractIndexStatusReport.java │ │ │ │ │ ├── AbstractIndexStatusWatcher.java │ │ │ │ │ ├── GraphCacheEvictionAction.java │ │ │ │ │ ├── GraphIndexStatusReport.java │ │ │ │ │ ├── GraphIndexStatusWatcher.java │ │ │ │ │ ├── JanusGraphIndexWrapper.java │ │ │ │ │ ├── ManagementLogger.java │ │ │ │ │ ├── ManagementSystem.java │ │ │ │ │ ├── MgmtLogType.java │ │ │ │ │ ├── ModifierType.java │ │ │ │ │ ├── RelationIndexStatusReport.java │ │ │ │ │ ├── RelationIndexStatusWatcher.java │ │ │ │ │ └── RelationTypeIndexWrapper.java │ │ │ │ ├── serialize │ │ │ │ │ ├── AttributeHandler.java │ │ │ │ │ ├── DataOutput.java │ │ │ │ │ ├── InternalAttributeUtil.java │ │ │ │ │ ├── OrderPreservingSerializer.java │ │ │ │ │ ├── Serializer.java │ │ │ │ │ ├── SerializerInjected.java │ │ │ │ │ ├── StandardSerializer.java │ │ │ │ │ ├── SupportsNullSerializer.java │ │ │ │ │ └── attribute │ │ │ │ │ │ ├── ArraySerializer.java │ │ │ │ │ │ ├── BooleanArraySerializer.java │ │ │ │ │ │ ├── BooleanSerializer.java │ │ │ │ │ │ ├── ByteArraySerializer.java │ │ │ │ │ │ ├── ByteSerializer.java │ │ │ │ │ │ ├── CharArraySerializer.java │ │ │ │ │ │ ├── CharacterSerializer.java │ │ │ │ │ │ ├── DateSerializer.java │ │ │ │ │ │ ├── DoubleArraySerializer.java │ │ │ │ │ │ ├── DoubleSerializer.java │ │ │ │ │ │ ├── DurationSerializer.java │ │ │ │ │ │ ├── EnumSerializer.java │ │ │ │ │ │ ├── FloatArraySerializer.java │ │ │ │ │ │ ├── FloatSerializer.java │ │ │ │ │ │ ├── InstantSerializer.java │ │ │ │ │ │ ├── IntArraySerializer.java │ │ │ │ │ │ ├── IntegerSerializer.java │ │ │ │ │ │ ├── JsonNodeParseException.java │ │ │ │ │ │ ├── JsonSerializer.java │ │ │ │ │ │ ├── LongArraySerializer.java │ │ │ │ │ │ ├── LongSerializer.java │ │ │ │ │ │ ├── ObjectSerializer.java │ │ │ │ │ │ ├── ParameterArraySerializer.java │ │ │ │ │ │ ├── ParameterSerializer.java │ │ │ │ │ │ ├── SerializableSerializer.java │ │ │ │ │ │ ├── ShortArraySerializer.java │ │ │ │ │ │ ├── ShortSerializer.java │ │ │ │ │ │ ├── StandardTransactionIdSerializer.java │ │ │ │ │ │ ├── StringArraySerializer.java │ │ │ │ │ │ ├── StringSerializer.java │ │ │ │ │ │ ├── TypeDefinitionDescriptionSerializer.java │ │ │ │ │ │ └── UUIDSerializer.java │ │ │ │ └── util │ │ │ │ │ ├── IndexAppliesToFunction.java │ │ │ │ │ ├── IndexRecordUtil.java │ │ │ │ │ └── StaleIndexRecordUtil.java │ │ │ ├── idmanagement │ │ │ │ ├── IDInspector.java │ │ │ │ ├── IDManager.java │ │ │ │ └── UniqueInstanceIdRetriever.java │ │ │ ├── internal │ │ │ │ ├── AbstractElement.java │ │ │ │ ├── ElementCategory.java │ │ │ │ ├── ElementLifeCycle.java │ │ │ │ ├── InternalElement.java │ │ │ │ ├── InternalRelation.java │ │ │ │ ├── InternalRelationType.java │ │ │ │ ├── InternalVertex.java │ │ │ │ ├── InternalVertexLabel.java │ │ │ │ ├── JanusGraphSchemaCategory.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderList.java │ │ │ │ ├── RelationCategory.java │ │ │ │ └── Token.java │ │ │ ├── log │ │ │ │ ├── ModificationDeserializer.java │ │ │ │ ├── StandardChangeState.java │ │ │ │ ├── StandardLogProcessorFramework.java │ │ │ │ ├── StandardTransactionId.java │ │ │ │ └── StandardTransactionLogProcessor.java │ │ │ ├── management │ │ │ │ ├── ConfigurationManagementGraph.java │ │ │ │ ├── JanusGraphManager.java │ │ │ │ └── utils │ │ │ │ │ ├── ConfigurationManagementGraphAlreadyInstantiatedException.java │ │ │ │ │ ├── ConfigurationManagementGraphNotEnabledException.java │ │ │ │ │ └── JanusGraphManagerException.java │ │ │ ├── olap │ │ │ │ ├── AbstractScanJob.java │ │ │ │ ├── GraphProvider.java │ │ │ │ ├── QueryContainer.java │ │ │ │ ├── VertexJobConverter.java │ │ │ │ ├── VertexScanJob.java │ │ │ │ ├── computer │ │ │ │ │ ├── FulgoraElementTraversal.java │ │ │ │ │ ├── FulgoraGraphComputer.java │ │ │ │ │ ├── FulgoraMapEmitter.java │ │ │ │ │ ├── FulgoraMemory.java │ │ │ │ │ ├── FulgoraReduceEmitter.java │ │ │ │ │ ├── FulgoraUtil.java │ │ │ │ │ ├── FulgoraVertexMemory.java │ │ │ │ │ ├── FulgoraVertexProperty.java │ │ │ │ │ ├── PartitionVertexAggregate.java │ │ │ │ │ ├── PartitionedVertexProgramExecutor.java │ │ │ │ │ ├── VertexMapJob.java │ │ │ │ │ ├── VertexMemoryHandler.java │ │ │ │ │ ├── VertexProgramScanJob.java │ │ │ │ │ └── VertexState.java │ │ │ │ └── job │ │ │ │ │ ├── GhostVertexRemover.java │ │ │ │ │ ├── IndexRemoveJob.java │ │ │ │ │ ├── IndexRepairJob.java │ │ │ │ │ └── IndexUpdateJob.java │ │ │ ├── predicate │ │ │ │ ├── AndJanusPredicate.java │ │ │ │ ├── ConnectiveJanusGraphP.java │ │ │ │ ├── ConnectiveJanusPredicate.java │ │ │ │ └── OrJanusPredicate.java │ │ │ ├── query │ │ │ │ ├── BackendQuery.java │ │ │ │ ├── BackendQueryHolder.java │ │ │ │ ├── BaseQuery.java │ │ │ │ ├── ElementQuery.java │ │ │ │ ├── JanusGraphPredicateUtils.java │ │ │ │ ├── LimitAdjustingIterator.java │ │ │ │ ├── MetricsQueryExecutor.java │ │ │ │ ├── Query.java │ │ │ │ ├── QueryExecutor.java │ │ │ │ ├── QueryProcessor.java │ │ │ │ ├── QueryUtil.java │ │ │ │ ├── ResultMergeSortIterator.java │ │ │ │ ├── ResultSetIterator.java │ │ │ │ ├── condition │ │ │ │ │ ├── And.java │ │ │ │ │ ├── Condition.java │ │ │ │ │ ├── ConditionUtil.java │ │ │ │ │ ├── DirectionCondition.java │ │ │ │ │ ├── FixedCondition.java │ │ │ │ │ ├── IncidenceCondition.java │ │ │ │ │ ├── Literal.java │ │ │ │ │ ├── MultiCondition.java │ │ │ │ │ ├── Not.java │ │ │ │ │ ├── Or.java │ │ │ │ │ ├── PredicateCondition.java │ │ │ │ │ ├── RelationTypeCondition.java │ │ │ │ │ └── VisibilityFilterCondition.java │ │ │ │ ├── graph │ │ │ │ │ ├── GraphCentricQuery.java │ │ │ │ │ ├── GraphCentricQueryBuilder.java │ │ │ │ │ ├── IndexQueryBuilder.java │ │ │ │ │ ├── JointIndexQuery.java │ │ │ │ │ ├── MixedIndexAggQueryBuilder.java │ │ │ │ │ └── MultiKeySliceQuery.java │ │ │ │ ├── index │ │ │ │ │ ├── AbstractIndexSelectionStrategy.java │ │ │ │ │ ├── ApproximateIndexSelectionStrategy.java │ │ │ │ │ ├── BruteForceIndexSelectionStrategy.java │ │ │ │ │ ├── IndexCandidate.java │ │ │ │ │ ├── IndexCandidateGroup.java │ │ │ │ │ ├── IndexSelectionStrategy.java │ │ │ │ │ ├── IndexSelectionUtil.java │ │ │ │ │ └── ThresholdBasedIndexSelectionStrategy.java │ │ │ │ ├── profile │ │ │ │ │ ├── ProfileObservable.java │ │ │ │ │ ├── QueryProfiler.java │ │ │ │ │ ├── QueryProfilerUtil.java │ │ │ │ │ └── SimpleQueryProfiler.java │ │ │ │ └── vertex │ │ │ │ │ ├── BaseVertexCentricQuery.java │ │ │ │ │ ├── BaseVertexCentricQueryBuilder.java │ │ │ │ │ ├── BasicVertexCentricQueryBuilder.java │ │ │ │ │ ├── BasicVertexCentricQueryUtil.java │ │ │ │ │ ├── MultiVertexCentricQueryBuilder.java │ │ │ │ │ ├── SimpleVertexQueryProcessor.java │ │ │ │ │ ├── VertexArrayList.java │ │ │ │ │ ├── VertexCentricQuery.java │ │ │ │ │ ├── VertexCentricQueryBuilder.java │ │ │ │ │ ├── VertexIdList.java │ │ │ │ │ ├── VertexListInternal.java │ │ │ │ │ └── VertexWithInlineProps.java │ │ │ ├── relations │ │ │ │ ├── AbstractEdge.java │ │ │ │ ├── AbstractTypedRelation.java │ │ │ │ ├── AbstractVertexProperty.java │ │ │ │ ├── CacheEdge.java │ │ │ │ ├── CacheVertexProperty.java │ │ │ │ ├── EdgeDirection.java │ │ │ │ ├── ReassignableRelation.java │ │ │ │ ├── RelationCache.java │ │ │ │ ├── RelationComparator.java │ │ │ │ ├── RelationIdentifierUtils.java │ │ │ │ ├── SimpleJanusGraphProperty.java │ │ │ │ ├── StandardEdge.java │ │ │ │ ├── StandardRelation.java │ │ │ │ └── StandardVertexProperty.java │ │ │ ├── tinkerpop │ │ │ │ ├── ElementUtils.java │ │ │ │ ├── JanusGraphBlueprintsGraph.java │ │ │ │ ├── JanusGraphBlueprintsTransaction.java │ │ │ │ ├── JanusGraphFeatures.java │ │ │ │ ├── JanusGraphVariables.java │ │ │ │ ├── optimize │ │ │ │ │ ├── JanusGraphTraversalUtil.java │ │ │ │ │ ├── MultiQueryPositions.java │ │ │ │ │ ├── QueryInfo.java │ │ │ │ │ ├── step │ │ │ │ │ │ ├── Aggregation.java │ │ │ │ │ │ ├── HasStepFolder.java │ │ │ │ │ │ ├── JanusGraphDropStep.java │ │ │ │ │ │ ├── JanusGraphElementMapStep.java │ │ │ │ │ │ ├── JanusGraphHasStep.java │ │ │ │ │ │ ├── JanusGraphLabelStep.java │ │ │ │ │ │ ├── JanusGraphMixedIndexAggStep.java │ │ │ │ │ │ ├── JanusGraphMultiQueryStep.java │ │ │ │ │ │ ├── JanusGraphNoOpBarrierVertexOnlyStep.java │ │ │ │ │ │ ├── JanusGraphPropertiesStep.java │ │ │ │ │ │ ├── JanusGraphPropertyMapStep.java │ │ │ │ │ │ ├── JanusGraphStep.java │ │ │ │ │ │ ├── JanusGraphVertexStep.java │ │ │ │ │ │ ├── MultiQueriable.java │ │ │ │ │ │ ├── fetcher │ │ │ │ │ │ │ ├── BatchProcessingQueue.java │ │ │ │ │ │ │ ├── DropStepBatchFetcher.java │ │ │ │ │ │ │ ├── FetchQueryBuildFunction.java │ │ │ │ │ │ │ ├── HasStepBatchFetcher.java │ │ │ │ │ │ │ ├── LabelStepBatchFetcher.java │ │ │ │ │ │ │ ├── MultiQueriableStepBatchFetcher.java │ │ │ │ │ │ │ ├── PropertiesStepBatchFetcher.java │ │ │ │ │ │ │ ├── TriggeredBatchConsumer.java │ │ │ │ │ │ │ └── VertexStepBatchFetcher.java │ │ │ │ │ │ ├── service │ │ │ │ │ │ │ ├── DirectPropertiesFetchingService.java │ │ │ │ │ │ │ ├── PropertiesFetchingService.java │ │ │ │ │ │ │ └── TraversalPropertiesFetchingService.java │ │ │ │ │ │ └── util │ │ │ │ │ │ │ └── PropertiesFetchingUtil.java │ │ │ │ │ └── strategy │ │ │ │ │ │ ├── AbstractJanusGraphMixedIndexAggStrategy.java │ │ │ │ │ │ ├── AdjacentVertexFilterOptimizerStrategy.java │ │ │ │ │ │ ├── AdjacentVertexHasIdOptimizerStrategy.java │ │ │ │ │ │ ├── AdjacentVertexHasUniquePropertyOptimizerStrategy.java │ │ │ │ │ │ ├── AdjacentVertexIsOptimizerStrategy.java │ │ │ │ │ │ ├── AdjacentVertexOptimizerStrategy.java │ │ │ │ │ │ ├── JanusGraphHasStepStrategy.java │ │ │ │ │ │ ├── JanusGraphIoRegistrationStrategy.java │ │ │ │ │ │ ├── JanusGraphLocalQueryOptimizerStrategy.java │ │ │ │ │ │ ├── JanusGraphMixedIndexAggStrategy.java │ │ │ │ │ │ ├── JanusGraphMixedIndexCountStrategy.java │ │ │ │ │ │ ├── JanusGraphMultiQueryStrategy.java │ │ │ │ │ │ ├── JanusGraphStepStrategy.java │ │ │ │ │ │ ├── JanusGraphUnusedMultiQueryRemovalStrategy.java │ │ │ │ │ │ ├── MultiQueriableStepRegistrationConsumer.java │ │ │ │ │ │ ├── MultiQueryDropStepStrategyMode.java │ │ │ │ │ │ ├── MultiQueryHasStepStrategyMode.java │ │ │ │ │ │ ├── MultiQueryLabelStepStrategyMode.java │ │ │ │ │ │ ├── MultiQueryPropertiesStrategyMode.java │ │ │ │ │ │ └── MultiQueryStrategyRepeatStepMode.java │ │ │ │ ├── plugin │ │ │ │ │ └── JanusGraphGremlinPlugin.java │ │ │ │ └── profile │ │ │ │ │ └── TP3ProfileWrapper.java │ │ │ ├── transaction │ │ │ │ ├── RelationConstructor.java │ │ │ │ ├── StandardJanusGraphTx.java │ │ │ │ ├── StandardTransactionBuilder.java │ │ │ │ ├── TransactionConfiguration.java │ │ │ │ ├── VertexFactory.java │ │ │ │ ├── VertexIterable.java │ │ │ │ ├── addedrelations │ │ │ │ │ ├── AddedPropertiesListValue.java │ │ │ │ │ ├── AddedPropertiesSetValue.java │ │ │ │ │ ├── AddedPropertiesSingleValue.java │ │ │ │ │ ├── AddedPropertiesValue.java │ │ │ │ │ ├── AddedRelationsContainer.java │ │ │ │ │ ├── ConcurrentAddedRelations.java │ │ │ │ │ ├── EmptyAddedRelations.java │ │ │ │ │ └── SimpleAddedRelations.java │ │ │ │ ├── indexcache │ │ │ │ │ ├── ConcurrentIndexCache.java │ │ │ │ │ ├── EmptyIndexCache.java │ │ │ │ │ ├── IndexCache.java │ │ │ │ │ └── SimpleIndexCache.java │ │ │ │ ├── lock │ │ │ │ │ ├── CombinerLock.java │ │ │ │ │ ├── FakeLock.java │ │ │ │ │ ├── IndexLockTuple.java │ │ │ │ │ ├── LockTuple.java │ │ │ │ │ ├── ReentrantTransactionLock.java │ │ │ │ │ └── TransactionLock.java │ │ │ │ ├── subquerycache │ │ │ │ │ ├── CaffeineSubqueryCache.java │ │ │ │ │ ├── EmptySubqueryCache.java │ │ │ │ │ ├── SubqueryCache.java │ │ │ │ │ └── SubsetSubqueryCache.java │ │ │ │ └── vertexcache │ │ │ │ │ ├── CaffeineVertexCache.java │ │ │ │ │ ├── EmptyVertexCache.java │ │ │ │ │ └── VertexCache.java │ │ │ ├── types │ │ │ │ ├── CompositeIndexType.java │ │ │ │ ├── IndexField.java │ │ │ │ ├── IndexType.java │ │ │ │ ├── MixedIndexType.java │ │ │ │ ├── ParameterIndexField.java │ │ │ │ ├── ParameterType.java │ │ │ │ ├── SchemaSource.java │ │ │ │ ├── StandardEdgeLabelMaker.java │ │ │ │ ├── StandardPropertyKeyMaker.java │ │ │ │ ├── StandardRelationTypeMaker.java │ │ │ │ ├── StandardVertexLabelMaker.java │ │ │ │ ├── TypeDefinitionCategory.java │ │ │ │ ├── TypeDefinitionDescription.java │ │ │ │ ├── TypeDefinitionMap.java │ │ │ │ ├── TypeInspector.java │ │ │ │ ├── TypeUtil.java │ │ │ │ ├── VertexLabelVertex.java │ │ │ │ ├── indextype │ │ │ │ │ ├── CompositeIndexTypeWrapper.java │ │ │ │ │ ├── IndexReferenceType.java │ │ │ │ │ ├── IndexTypeWrapper.java │ │ │ │ │ └── MixedIndexTypeWrapper.java │ │ │ │ ├── system │ │ │ │ │ ├── BaseKey.java │ │ │ │ │ ├── BaseLabel.java │ │ │ │ │ ├── BaseRelationType.java │ │ │ │ │ ├── BaseVertexLabel.java │ │ │ │ │ ├── EmptyRelationType.java │ │ │ │ │ ├── EmptyVertex.java │ │ │ │ │ ├── ImplicitKey.java │ │ │ │ │ ├── SystemRelationType.java │ │ │ │ │ └── SystemTypeManager.java │ │ │ │ └── vertices │ │ │ │ │ ├── EdgeLabelVertex.java │ │ │ │ │ ├── JanusGraphSchemaVertex.java │ │ │ │ │ ├── PropertyKeyVertex.java │ │ │ │ │ └── RelationTypeVertex.java │ │ │ ├── util │ │ │ │ ├── CloseableAbstractIterator.java │ │ │ │ ├── CloseableIteratorUtils.java │ │ │ │ ├── CollectionsUtil.java │ │ │ │ ├── CopyStepUtil.java │ │ │ │ ├── ElementHelper.java │ │ │ │ ├── ExceptionFactory.java │ │ │ │ ├── IndexHelper.java │ │ │ │ ├── JanusGraphTraverserUtil.java │ │ │ │ ├── MultiDistinctOrderedIterator.java │ │ │ │ ├── MultiDistinctUnorderedIterator.java │ │ │ │ ├── MultiIterator.java │ │ │ │ ├── MultiSliceQueriesGroupingUtil.java │ │ │ │ ├── ProfiledIterator.java │ │ │ │ ├── SubqueryIterator.java │ │ │ │ ├── VertexCentricEdgeIterable.java │ │ │ │ └── WorkerPool.java │ │ │ └── vertices │ │ │ │ ├── AbstractVertex.java │ │ │ │ ├── CacheVertex.java │ │ │ │ ├── PreloadedVertex.java │ │ │ │ └── StandardVertex.java │ │ │ └── util │ │ │ ├── datastructures │ │ │ ├── AbstractIdListUtil.java │ │ │ ├── BitMap.java │ │ │ ├── ByteSize.java │ │ │ ├── ExceptionUtil.java │ │ │ ├── ExceptionWrapper.java │ │ │ ├── Interval.java │ │ │ ├── IterablesUtil.java │ │ │ ├── PointInterval.java │ │ │ ├── PowerSet.java │ │ │ ├── RangeInterval.java │ │ │ ├── Removable.java │ │ │ └── Retriever.java │ │ │ ├── encoding │ │ │ ├── ConversionHelper.java │ │ │ ├── NumericUtils.java │ │ │ └── StringEncoding.java │ │ │ ├── stats │ │ │ ├── MetricManager.java │ │ │ └── NumberUtil.java │ │ │ └── system │ │ │ ├── BackgroundThread.java │ │ │ ├── CheckSocket.java │ │ │ ├── ConfigurationFileFilter.java │ │ │ ├── ConfigurationLint.java │ │ │ ├── ConfigurationPrinter.java │ │ │ ├── ConfigurationUtil.java │ │ │ ├── ExecuteExceptionallyFunction.java │ │ │ ├── ExecuteUtil.java │ │ │ ├── IOUtils.java │ │ │ ├── LoggerUtil.java │ │ │ ├── NetworkUtil.java │ │ │ ├── TXUtils.java │ │ │ └── Threads.java │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin │ │ └── org │ │ └── janusgraph │ │ └── graphdb │ │ └── configuration │ │ └── janusgraph.internal.properties │ └── test │ └── java │ └── org │ └── janusgraph │ ├── core │ └── schema │ │ └── json │ │ └── parser │ │ └── JsonParameterDefinitionParserTest.java │ ├── diskstorage │ └── util │ │ ├── CompletableFutureUtilTest.java │ │ └── backpressure │ │ ├── QueryBackPressureTest.java │ │ └── builder │ │ └── QueryBackPressureBuilderTest.java │ ├── graphdb │ ├── TestModifierType.java │ ├── tinkerpop │ │ └── optimize │ │ │ └── step │ │ │ └── fetcher │ │ │ ├── BatchProcessingQueueTest.java │ │ │ └── MultiQueriableStepBatchFetcherTest.java │ └── util │ │ ├── JanusGraphTraverserUtilTest.java │ │ ├── MultiSliceQueriesGroupingUtilTest.java │ │ └── TestTraverserWithoutLoopsSupport.java │ └── util │ ├── datastructures │ └── ExceptionUtilTest.java │ └── system │ └── ConfigurationUtilTest.java ├── janusgraph-cql ├── pom.xml └── src │ ├── main │ └── java │ │ ├── com │ │ └── codahale │ │ │ └── metrics │ │ │ └── JmxReporter.java │ │ └── org │ │ └── janusgraph │ │ ├── diskstorage │ │ └── cql │ │ │ ├── CQLColValGetter.java │ │ │ ├── CQLConfigOptions.java │ │ │ ├── CQLKeyColumnValueStore.java │ │ │ ├── CQLMapKeyIterator.java │ │ │ ├── CQLResultSetKeyIterator.java │ │ │ ├── CQLStoreManager.java │ │ │ ├── CQLSubsetIterator.java │ │ │ ├── CQLTransaction.java │ │ │ ├── QueryGroups.java │ │ │ ├── builder │ │ │ ├── CQLExecutorServiceBuilder.java │ │ │ ├── CQLMutateManyFunctionBuilder.java │ │ │ ├── CQLProgrammaticConfigurationLoaderBuilder.java │ │ │ ├── CQLSessionBuilder.java │ │ │ ├── CQLStoreFeaturesBuilder.java │ │ │ └── CQLStoreFeaturesWrapper.java │ │ │ ├── function │ │ │ ├── ColumnOperationFunction.java │ │ │ ├── ConsumerWithBackendException.java │ │ │ ├── mutate │ │ │ │ ├── AbstractCQLMutateManyFunction.java │ │ │ │ ├── CQLMutateManyFunction.java │ │ │ │ ├── CQLMutateManyLoggedFunction.java │ │ │ │ └── CQLMutateManyUnloggedFunction.java │ │ │ └── slice │ │ │ │ ├── AsyncCQLFunction.java │ │ │ │ ├── AsyncCQLMultiKeyMultiColumnFunction.java │ │ │ │ ├── AsyncCQLMultiKeySliceFunction.java │ │ │ │ ├── AsyncCQLSingleKeyMultiColumnFunction.java │ │ │ │ ├── AsyncCQLSingleKeySliceFunction.java │ │ │ │ └── CQLSliceFunction.java │ │ │ ├── query │ │ │ ├── MultiKeysMultiColumnQuery.java │ │ │ ├── MultiKeysSingleSliceQuery.java │ │ │ └── SingleKeyMultiColumnQuery.java │ │ │ ├── service │ │ │ ├── AsyncQueryExecutionService.java │ │ │ └── GroupingAsyncQueryExecutionService.java │ │ │ ├── strategy │ │ │ ├── GroupedExecutionStrategy.java │ │ │ ├── GroupedExecutionStrategyBuilder.java │ │ │ ├── ReplicasAwareGroupedExecutionStrategy.java │ │ │ ├── ResultFiller.java │ │ │ └── TokenRangeAwareGroupedExecutionStrategy.java │ │ │ └── util │ │ │ ├── CQLSliceQueryUtil.java │ │ │ └── KeysGroup.java │ │ └── hadoop │ │ ├── CqlHadoopStoreManager.java │ │ ├── CqlMapReduceIndexJobsUtils.java │ │ ├── formats │ │ └── cql │ │ │ ├── CqlBinaryInputFormat.java │ │ │ ├── CqlBinaryRecordReader.java │ │ │ └── CqlInputFormat.java │ │ └── scan │ │ └── CQLHadoopScanRunner.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── JanusGraphCassandraContainer.java │ │ ├── blueprints │ │ └── cql │ │ │ ├── CQLGraphComputerProvider.java │ │ │ ├── CQLGraphProvider.java │ │ │ ├── CQLMultiQueryGraphProvider.java │ │ │ ├── process │ │ │ ├── CQLComputerTest.java │ │ │ ├── CQLMultiQueryProcessTest.java │ │ │ └── CQLProcessTest.java │ │ │ └── structure │ │ │ └── CQLStructureTest.java │ │ ├── core │ │ └── cql │ │ │ └── CQLConfiguredGraphFactoryTest.java │ │ ├── diskstorage │ │ └── cql │ │ │ ├── CQLConfigTest.java │ │ │ ├── CQLDistributedStoreManagerTest.java │ │ │ ├── CQLIDAuthorityTest.java │ │ │ ├── CQLKeyColumnValueStoreTest.java │ │ │ ├── CQLLockStoreTest.java │ │ │ ├── CQLLogTest.java │ │ │ ├── CQLMultiWriteStoreTest.java │ │ │ ├── CQLResultSetKeyIteratorTest.java │ │ │ ├── CQLStoreTest.java │ │ │ ├── CQLSubsetIteratorTest.java │ │ │ ├── CachingCQLSessionBuilder.java │ │ │ ├── CachingCQLStoreManager.java │ │ │ └── strategy │ │ │ └── GroupedExecutionStrategyBuilderTest.java │ │ ├── graphdb │ │ └── cql │ │ │ ├── CQLEventualGraphTest.java │ │ │ ├── CQLGraphCacheTest.java │ │ │ ├── CQLGraphConcurrentTest.java │ │ │ ├── CQLGraphIterativeTest.java │ │ │ ├── CQLGraphPerformanceMemoryTest.java │ │ │ ├── CQLGraphTest.java │ │ │ ├── CQLOLAPTest.java │ │ │ ├── CQLOperationCountingTest.java │ │ │ ├── CQLPartitionGraphTest.java │ │ │ └── customid │ │ │ ├── CQLCustomDelimiterTest.java │ │ │ ├── CQLIdTest.java │ │ │ ├── CQLMultiCharDelimiterTest.java │ │ │ └── CQLNonAsciiDelimiterTest.java │ │ ├── hadoop │ │ ├── CQLCustomIdSparkTest.java │ │ ├── CQLIndexManagementIT.java │ │ ├── CQLInputFormatIT.java │ │ └── CQLScanJobIT.java │ │ └── testutil │ │ └── TestLoggerUtils.java │ └── resources │ ├── cassandra3-byteordered.yaml │ ├── cassandra3-murmur-client-auth.yaml │ ├── cassandra3-murmur-ssl.yaml │ ├── cassandra3-murmur.yaml │ ├── cassandra4-byteordered.yaml │ ├── cassandra4-murmur-client-auth.yaml │ ├── cassandra4-murmur-ssl.yaml │ ├── cassandra4-murmur.yaml │ ├── cert │ ├── README.md │ ├── client.crt │ ├── client.keystore │ ├── client.truststore │ ├── node.crt │ ├── node.key │ ├── node.keystore │ └── node.truststore │ ├── cql-read-multi-hosts.properties │ ├── cql-read.properties │ ├── cqlshrc │ ├── datastaxMisconfiguredResourceTestConfig.conf │ ├── datastaxResourceTestConfigWithoutContactPoints.conf │ ├── docker │ ├── docker-compose.yml │ ├── janusgraph_docker_entrypoint.sh │ └── update_config.py │ ├── log4j2-test.xml │ ├── scylla-murmur-client-auth.yaml │ ├── scylla-murmur-ssl.yaml │ └── scylla-murmur.yaml ├── janusgraph-dist ├── .gitignore ├── README.md ├── docker │ ├── .dockerignore │ ├── Dockerfile │ ├── build-and-push-image.sh │ ├── conf │ │ ├── janusgraph-berkeleyje-es-server.properties │ │ ├── janusgraph-berkeleyje-lucene-server.properties │ │ ├── janusgraph-berkeleyje-server.properties │ │ ├── janusgraph-cql-es-server.properties │ │ ├── janusgraph-cql-server.properties │ │ └── janusgraph-inmemory-server.properties │ ├── docker-entrypoint.sh │ ├── examples │ │ ├── docker-compose-cql-es.yml │ │ ├── docker-compose-mount.yml │ │ └── docker-compose.yml │ ├── load-initdb.sh │ ├── scripts │ │ └── remote-connect.groovy │ └── test-image.sh ├── pom.xml └── src │ ├── assembly │ ├── cfilter │ │ └── conf │ │ │ ├── janusgraph-berkeleyje-es.properties │ │ │ ├── janusgraph-berkeleyje-lucene.properties │ │ │ ├── janusgraph-berkeleyje-solr.properties │ │ │ ├── janusgraph-berkeleyje.properties │ │ │ ├── janusgraph-cql-configurationgraph.properties │ │ │ ├── janusgraph-cql-es.properties │ │ │ ├── janusgraph-cql-solr.properties │ │ │ ├── janusgraph-cql.properties │ │ │ ├── janusgraph-hbase-es.properties │ │ │ ├── janusgraph-hbase-solr.properties │ │ │ ├── janusgraph-hbase.properties │ │ │ └── janusgraph-inmemory.properties │ ├── descriptor │ │ ├── archive-full.xml │ │ ├── archive.xml │ │ ├── common-full.component.xml │ │ ├── common.component.xml │ │ ├── htmldocs.component.xml │ │ ├── javadocs.xml │ │ └── readmes.component.xml │ └── static │ │ ├── README.txt │ │ ├── bin │ │ ├── checkconfig.sh │ │ ├── checksocket.sh │ │ ├── gremlin-server.bat │ │ ├── gremlin.bat │ │ ├── gremlin.sh │ │ ├── janusgraph-server.sh │ │ └── janusgraph.sh │ │ ├── cassandra │ │ ├── bin │ │ │ └── cassandra │ │ └── conf │ │ │ ├── cassandra.yaml │ │ │ ├── jvm-server.options │ │ │ └── logback.xml │ │ ├── conf │ │ ├── gremlin-server │ │ │ ├── gremlin-server-berkeleyje-es.yaml │ │ │ ├── gremlin-server-berkeleyje.yaml │ │ │ ├── gremlin-server-configuration.yaml │ │ │ ├── gremlin-server-cql-es.yaml │ │ │ ├── gremlin-server-cql.yaml │ │ │ ├── gremlin-server-hbase-es.yaml │ │ │ ├── gremlin-server-hbase.yaml │ │ │ └── gremlin-server.yaml │ │ ├── hadoop-graph │ │ │ ├── hadoop-graphson.properties │ │ │ ├── hadoop-gryo.properties │ │ │ ├── hadoop-load.properties │ │ │ ├── hadoop-script.properties │ │ │ ├── read-cassandra-standalone-cluster.properties │ │ │ ├── read-cassandra.properties │ │ │ ├── read-cql-standalone-cluster.properties │ │ │ ├── read-cql.properties │ │ │ ├── read-hbase-snapshot.properties │ │ │ ├── read-hbase-standalone-cluster.properties │ │ │ └── read-hbase.properties │ │ ├── jvm-11.options │ │ ├── jvm-8.options │ │ ├── log4j2-console.xml │ │ ├── log4j2-server.xml │ │ ├── remote-graph-binary.yaml │ │ ├── remote-graph.properties │ │ ├── remote-objects.yaml │ │ ├── remote.yaml │ │ └── solr │ │ │ ├── currency.xml │ │ │ ├── lang │ │ │ └── stopwords_en.txt │ │ │ ├── protwords.txt │ │ │ ├── schema.xml │ │ │ ├── solrconfig.xml │ │ │ ├── stopwords.txt │ │ │ └── synonyms.txt │ │ ├── data │ │ ├── grateful-dead-janusgraph-schema.groovy │ │ ├── grateful-dead-typed.json │ │ ├── grateful-dead-v2d0-typed.json │ │ ├── grateful-dead-v2d0.json │ │ ├── grateful-dead.json │ │ ├── grateful-dead.kryo │ │ ├── grateful-dead.txt │ │ ├── grateful-dead.xml │ │ ├── script-input-grateful-dead.groovy │ │ ├── script-input-tinkerpop.groovy │ │ ├── tinkerpop-classic-typed.json │ │ ├── tinkerpop-classic-v2d0-typed.json │ │ ├── tinkerpop-classic-v2d0.json │ │ ├── tinkerpop-classic.json │ │ ├── tinkerpop-classic.kryo │ │ ├── tinkerpop-classic.txt │ │ ├── tinkerpop-classic.xml │ │ ├── tinkerpop-crew-typed.json │ │ ├── tinkerpop-crew-v2d0-typed.json │ │ ├── tinkerpop-crew-v2d0.json │ │ ├── tinkerpop-crew.json │ │ ├── tinkerpop-crew.kryo │ │ ├── tinkerpop-modern-typed.json │ │ ├── tinkerpop-modern-v2d0-typed.json │ │ ├── tinkerpop-modern-v2d0.json │ │ ├── tinkerpop-modern.json │ │ ├── tinkerpop-modern.kryo │ │ ├── tinkerpop-modern.xml │ │ ├── tinkerpop-sink-typed.json │ │ ├── tinkerpop-sink-v2d0-typed.json │ │ ├── tinkerpop-sink-v2d0.json │ │ ├── tinkerpop-sink.json │ │ └── tinkerpop-sink.kryo │ │ ├── elasticsearch │ │ └── config │ │ │ ├── elasticsearch.yml │ │ │ └── jvm.options │ │ ├── ext │ │ ├── README.txt │ │ └── plugins.txt │ │ ├── logs │ │ └── .gitkeep │ │ └── scripts │ │ └── empty-sample.groovy │ └── test │ ├── expect │ ├── compat-test.expect.vm │ ├── getting-started.expect.vm │ ├── gremlin-shell-args.expect.vm │ ├── janusgraph-server-sh.after.expect.vm │ ├── janusgraph-server-sh.before.expect.vm │ ├── janusgraph-sh.expect.vm │ ├── remote-console.expect.vm │ ├── single-vertex.expect.vm │ └── spark-graph-computer.expect.vm │ ├── java │ └── org │ │ └── janusgraph │ │ └── pkgtest │ │ ├── AbstractJanusGraphAssemblyIT.java │ │ ├── BerkeleyAssemblyIT.java │ │ ├── BerkeleyESAssemblyIT.java │ │ ├── CqlAssemblyIT.java │ │ ├── CqlESAssemblyIT.java │ │ ├── GraphOfTheGodsCompatIT.java │ │ ├── GremlinShellArgsIT.java │ │ ├── HBaseAssemblyIT.java │ │ ├── HBaseESAssemblyIT.java │ │ ├── InMemoryAssemblyIT.java │ │ ├── JanusGraphAssemblyBaseIT.java │ │ ├── JanusGraphScriptIT.java │ │ └── TestCategory.java │ ├── log4j2-test.xml │ └── resources │ ├── compat.csv │ ├── target.properties │ └── test_gremlin_init.groovy ├── janusgraph-doc └── pom.xml ├── janusgraph-driver ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ ├── core │ │ └── attribute │ │ │ ├── Cmp.java │ │ │ ├── Contain.java │ │ │ ├── Geo.java │ │ │ ├── Geoshape.java │ │ │ ├── JtsGeoshapeHelper.java │ │ │ ├── Text.java │ │ │ └── TinkerPopTextWrappingPredicate.java │ │ ├── graphdb │ │ ├── database │ │ │ └── serialize │ │ │ │ └── AttributeUtils.java │ │ ├── query │ │ │ └── JanusGraphPredicate.java │ │ ├── relations │ │ │ └── RelationIdentifier.java │ │ └── tinkerpop │ │ │ ├── JanusGraphIoRegistry.java │ │ │ ├── JanusGraphIoRegistryV1d0.java │ │ │ ├── JanusGraphPSerializer.java │ │ │ ├── io │ │ │ ├── JanusGraphP.java │ │ │ ├── binary │ │ │ │ ├── GeoshapeGraphBinaryConstants.java │ │ │ │ ├── GeoshapeGraphBinarySerializer.java │ │ │ │ ├── GraphBinaryType.java │ │ │ │ ├── JanusGraphPBinarySerializer.java │ │ │ │ ├── JanusGraphTypeSerializer.java │ │ │ │ ├── RelationIdentifierGraphBinarySerializer.java │ │ │ │ └── geoshape │ │ │ │ │ ├── BoxSerializer.java │ │ │ │ │ ├── CircleSerializer.java │ │ │ │ │ ├── GeometryCollectionSerializer.java │ │ │ │ │ ├── GeoshapeTypeSerializer.java │ │ │ │ │ ├── LineSerializer.java │ │ │ │ │ ├── MultiLineSerializer.java │ │ │ │ │ ├── MultiPointSerializer.java │ │ │ │ │ ├── MultiPolygonSerializer.java │ │ │ │ │ ├── PointCollectionSerializer.java │ │ │ │ │ ├── PointSerializer.java │ │ │ │ │ └── PolygonSerializer.java │ │ │ └── graphson │ │ │ │ ├── JanusGraphSONModule.java │ │ │ │ ├── JanusGraphSONModuleV1d0.java │ │ │ │ └── JanusGraphSONModuleV2d0.java │ │ │ └── plugin │ │ │ └── JanusGraphGremlinDriverPlugin.java │ │ └── util │ │ ├── IDUtils.java │ │ ├── StringUtils.java │ │ └── encoding │ │ └── LongEncoding.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── core │ │ └── attribute │ │ │ ├── GeoshapeHelperTest.java │ │ │ └── TinkerPopTextWrappingPredicateTest.java │ │ ├── graphdb │ │ ├── relations │ │ │ └── RelationIdentifierTest.java │ │ └── tinkerpop │ │ │ ├── JanusGraphIoRegistryTest.java │ │ │ ├── io │ │ │ ├── binary │ │ │ │ ├── GeoshapeGraphBinarySerializerTest.java │ │ │ │ ├── JanusGraphPGraphBinarySerializerTest.java │ │ │ │ └── RelationIdentifierGraphBinarySerializerTest.java │ │ │ └── graphson │ │ │ │ └── JanusGraphSONModuleTest.java │ │ │ └── plugin │ │ │ └── JanusGraphGremlinDriverPluginTest.java │ │ └── util │ │ ├── IDUtilsTest.java │ │ └── encoding │ │ └── LongEncodingTest.java │ └── resources │ └── log4j2-test.xml ├── janusgraph-es ├── .gitignore ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── es │ │ ├── ElasticMajorVersion.java │ │ ├── ElasticSearchClient.java │ │ ├── ElasticSearchConstants.java │ │ ├── ElasticSearchIndex.java │ │ ├── ElasticSearchMutation.java │ │ ├── ElasticSearchRequest.java │ │ ├── ElasticSearchResponse.java │ │ ├── ElasticSearchScroll.java │ │ ├── ElasticSearchSetup.java │ │ ├── compat │ │ ├── AbstractESCompat.java │ │ ├── ES6Compat.java │ │ ├── ES7Compat.java │ │ ├── ES8Compat.java │ │ └── ESCompatUtils.java │ │ ├── mapping │ │ ├── IndexMapping.java │ │ ├── TypedIndexMappings.java │ │ └── TypelessIndexMappings.java │ │ ├── rest │ │ ├── RestAggResponse.java │ │ ├── RestAggResult.java │ │ ├── RestAggValue.java │ │ ├── RestBulkResponse.java │ │ ├── RestClientSetup.java │ │ ├── RestCountResponse.java │ │ ├── RestElasticSearchClient.java │ │ ├── RestIndexSettings.java │ │ ├── RestSearchHit.java │ │ ├── RestSearchResponse.java │ │ ├── RestSearchResults.java │ │ └── util │ │ │ ├── BasicAuthHttpClientConfigCallback.java │ │ │ ├── ConnectionKeepAliveConfigCallback.java │ │ │ ├── HttpAuthTypes.java │ │ │ ├── RestClientAuthenticator.java │ │ │ ├── RestClientAuthenticatorBase.java │ │ │ └── SSLConfigurationCallback.java │ │ └── script │ │ ├── ESScript.java │ │ └── ESScriptResponse.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── core │ │ └── es │ │ │ └── ElasticsearchConfiguredGraphFactoryTest.java │ │ └── diskstorage │ │ └── es │ │ ├── BerkeleyElasticsearchTest.java │ │ ├── CQLElasticsearchCustomIdTest.java │ │ ├── CQLElasticsearchTest.java │ │ ├── CustomJsonStringParameterParser.java │ │ ├── CustomTestSchemaInitStrategy.java │ │ ├── ElasticSearchScrollTest.java │ │ ├── ElasticsearchConfigTest.java │ │ ├── ElasticsearchIndexTest.java │ │ ├── ElasticsearchJanusGraphIndexTest.java │ │ ├── JanusGraphElasticsearchContainer.java │ │ ├── TestCircleProcessor.java │ │ └── rest │ │ ├── RestClientBulkRequestsTest.java │ │ ├── RestClientRetryTest.java │ │ ├── RestClientSetupTest.java │ │ └── util │ │ ├── BasicAuthHttpClientConfigCallbackTest.java │ │ └── SSLConfigurationCallbackTest.java │ └── resources │ ├── dynamic_mapping.json │ ├── log4j2-test.xml │ ├── mapping.json │ ├── mockito-extensions │ └── org.mockito.plugins.MockMaker │ ├── strict_mapping.json │ ├── test_schema_example.json │ ├── test_schema_from_doc.json │ ├── typeless_dynamic_mapping.json │ ├── typeless_mapping.json │ └── typeless_strict_mapping.json ├── janusgraph-examples ├── README.md ├── example-berkeleyje │ ├── .gitignore │ ├── README.md │ ├── conf │ │ └── jgex-berkeleyje.properties │ └── pom.xml ├── example-common │ ├── README.md │ ├── conf │ │ └── jgex-inmemory.properties │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── janusgraph │ │ │ └── example │ │ │ ├── GraphApp.java │ │ │ └── JanusGraphApp.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── janusgraph │ │ │ └── example │ │ │ ├── GraphAppTest.java │ │ │ └── JanusGraphAppTest.java │ │ └── resources │ │ └── log4j2.xml ├── example-cql │ ├── README.md │ ├── conf │ │ ├── jgex-cql.properties │ │ └── logback.xml │ └── pom.xml ├── example-hbase │ ├── README.md │ ├── conf │ │ ├── jgex-hbase-solr-cloud.properties │ │ ├── jgex-hbase-solr-http.properties │ │ └── logback.xml │ └── pom.xml ├── example-remotegraph │ ├── README.md │ ├── conf │ │ ├── jgex-remote.properties │ │ └── remote-objects.yaml │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── janusgraph │ │ └── example │ │ └── RemoteGraphApp.java ├── example-tinkergraph │ ├── README.md │ ├── conf │ │ └── jgex-tinkergraph.properties │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── janusgraph │ │ │ └── example │ │ │ └── TinkerGraphApp.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── janusgraph │ │ │ └── example │ │ │ └── TinkerGraphAppTest.java │ │ └── resources │ │ └── log4j2.xml └── pom.xml ├── janusgraph-grpc ├── README.md ├── buf.yaml ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── janusgraph │ │ └── graphdb │ │ └── grpc │ │ ├── JanusGraphManagerClient.java │ │ └── schema │ │ └── SchemaManagerClient.java │ └── proto │ └── janusgraph │ ├── schema │ └── v1 │ │ └── schema_manager.proto │ ├── types │ └── v1 │ │ ├── graph_types.proto │ │ └── schema_types.proto │ └── v1 │ └── graph_manager.proto ├── janusgraph-hadoop ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── assembly │ ├── code-jar.xml │ ├── example-data.xml │ ├── example-data │ │ ├── FathersName.groovy │ │ └── IncrementalLoading.groovy │ ├── javadoc-jar.xml │ ├── shared-resources.xml │ ├── shared-resources │ │ └── hadoop-job.xml │ └── sources-jar.xml │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── hadoop │ │ ├── CountersScanMetrics.java │ │ ├── DistCacheConfigurer.java │ │ ├── HadoopStoreManager.java │ │ ├── MapReduceIndexJobs.java │ │ ├── MapReduceIndexManagement.java │ │ ├── MapredJarConfigurer.java │ │ ├── config │ │ ├── HadoopConfiguration.java │ │ ├── JanusGraphHadoopConfiguration.java │ │ ├── ModifiableHadoopConfiguration.java │ │ └── job │ │ │ ├── AbstractDistCacheConfigurer.java │ │ │ ├── JobClasspathConfigurer.java │ │ │ └── JobClasspathConfigurers.java │ │ ├── formats │ │ ├── FormatTools.java │ │ ├── JobConfigurationFormat.java │ │ └── util │ │ │ ├── AbstractBinaryInputFormat.java │ │ │ ├── HadoopInputFormat.java │ │ │ ├── HadoopRecordReader.java │ │ │ ├── JanusGraphVertexDeserializer.java │ │ │ └── input │ │ │ ├── JanusGraphHadoopSetup.java │ │ │ ├── SystemTypeInspector.java │ │ │ ├── VertexReader.java │ │ │ └── current │ │ │ └── JanusGraphHadoopSetupImpl.java │ │ ├── scan │ │ ├── AbstractHadoopScanRunner.java │ │ ├── HadoopContextScanMetrics.java │ │ ├── HadoopScanMapper.java │ │ ├── HadoopScanRunner.java │ │ └── HadoopVertexScanMapper.java │ │ └── serialize │ │ ├── JanusGraphKryoRegistrator.java │ │ └── JanusGraphKryoShimService.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ └── hadoop │ │ ├── AbstractIndexManagementIT.java │ │ ├── AbstractInputFormatIT.java │ │ ├── ConfigurationTest.java │ │ ├── JanusGraphCustomIdSparkTest.java │ │ ├── MapReduceRemoveIndexApp.java │ │ └── formats │ │ └── util │ │ └── HadoopRecordReaderTest.java │ └── resources │ ├── META-INF │ └── services │ │ └── org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShimService │ ├── log4j2-test.xml │ └── org │ └── janusgraph │ └── hadoop │ ├── formats │ ├── edgelist │ │ └── rdf │ │ │ └── graph-example-1.ntriple │ ├── graphson │ │ ├── extra-cerberus.json │ │ ├── graph-example-1.json │ │ ├── graph-of-the-gods.json │ │ ├── incremental-custom-cerberus-load.groovy │ │ ├── incremental-load.groovy │ │ └── incremental-naive-cerberus-load.groovy │ └── script │ │ ├── ScriptInput.groovy │ │ ├── ScriptOutput.groovy │ │ └── graph-of-the-gods.id │ ├── graph-of-the-gods-2.seq │ ├── graphson-noop.properties │ └── tinkerpop │ └── gremlin │ └── Script.groovy ├── janusgraph-hbase ├── docker │ ├── Dockerfile │ ├── entrypoint.sh │ ├── hbase-policy.xml │ └── hbase-site.xml ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ ├── diskstorage │ │ └── hbase │ │ │ ├── HBaseKeyColumnValueStore.java │ │ │ ├── HBaseStoreManager.java │ │ │ └── HBaseTransaction.java │ │ └── hadoop │ │ ├── HBaseHadoopStoreManager.java │ │ ├── HBaseMapReduceIndexJobsUtils.java │ │ ├── config │ │ └── HBaseAuthHelper.java │ │ ├── formats │ │ └── hbase │ │ │ ├── HBaseBinaryInputFormat.java │ │ │ ├── HBaseBinaryRecordReader.java │ │ │ ├── HBaseInputFormat.java │ │ │ ├── HBaseSnapshotBinaryInputFormat.java │ │ │ └── HBaseSnapshotInputFormat.java │ │ └── scan │ │ └── HBaseHadoopScanRunner.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── HBaseContainer.java │ │ ├── blueprints │ │ ├── HBaseGraphComputerProvider.java │ │ ├── HBaseGraphProvider.java │ │ ├── HBaseMultiQueryGraphProvider.java │ │ ├── process │ │ │ ├── HBaseComputerTest.java │ │ │ ├── HBaseMultiQueryProcessTest.java │ │ │ └── HBaseProcessTest.java │ │ └── structure │ │ │ └── HBaseStructureTest.java │ │ ├── diskstorage │ │ └── hbase │ │ │ ├── HBaseDistributedStoreManagerTest.java │ │ │ ├── HBaseIDAuthorityTest.java │ │ │ ├── HBaseLockStoreTest.java │ │ │ ├── HBaseLogTest.java │ │ │ ├── HBaseMultiWriteStoreTest.java │ │ │ ├── HBaseStoreManagerConfigTest.java │ │ │ ├── HBaseStoreManagerMutationTest.java │ │ │ └── HBaseStoreTest.java │ │ ├── graphdb │ │ └── hbase │ │ │ ├── HBaseCustomIdTest.java │ │ │ ├── HBaseGraphConcurrentTest.java │ │ │ ├── HBaseGraphPerformanceMemoryTest.java │ │ │ ├── HBaseGraphTest.java │ │ │ ├── HBaseLuceneCustomIdTest.java │ │ │ ├── HBaseOLAPTest.java │ │ │ ├── HBaseOperationCountingTest.java │ │ │ └── HBasePartitionGraphTest.java │ │ └── hadoop │ │ ├── HBaseCustomIdSparkTest.java │ │ ├── HBaseIndexManagementIT.java │ │ ├── HBaseInputFormatIT.java │ │ └── HBaseSnapshotInputFormatIT.java │ └── resources │ ├── hbase-read-snapshot.properties │ ├── hbase-read.properties │ └── log4j2-test.xml ├── janusgraph-inmemory ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── inmemory │ │ ├── BufferPage.java │ │ ├── BufferPageUtils.java │ │ ├── InMemoryColumnValueStore.java │ │ ├── InMemoryKeyColumnValueStore.java │ │ ├── InMemoryKeyColumnValueStoreFragmentationReport.java │ │ ├── InMemoryStoreManager.java │ │ ├── MemoryEntryList.java │ │ ├── MultiPageEntryBuffer.java │ │ ├── SharedEntryBuffer.java │ │ ├── SharedEntryBufferFragmentationReport.java │ │ └── SinglePageEntryBuffer.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── blueprints │ │ └── inmemory │ │ │ ├── InMemoryGraphComputerProvider.java │ │ │ ├── InMemoryGraphProvider.java │ │ │ ├── InMemoryMultiQueryGraphProvider.java │ │ │ ├── process │ │ │ ├── InMemoryJanusGraphComputerTest.java │ │ │ ├── InMemoryJanusGraphProcessTest.java │ │ │ └── InMemoryMultiQueryJanusGraphProcessTest.java │ │ │ └── structure │ │ │ └── InMemoryJanusGraphStructureTest.java │ │ ├── core │ │ └── inmemory │ │ │ └── InmemoryConfiguredGraphFactoryTest.java │ │ ├── diskstorage │ │ └── inmemory │ │ │ ├── BufferPageTest.java │ │ │ ├── InMemoryColumnValueStoreTest.java │ │ │ ├── InMemoryIDAuthorityTest.java │ │ │ ├── InMemoryKeyColumnValueStoreTest.java │ │ │ ├── InMemoryLockKeyColumnValueStoreTest.java │ │ │ ├── InMemoryStoreManagerTest.java │ │ │ ├── InmemoryGraphDatabaseConfigurationInstanceExecutorServiceTest.java │ │ │ ├── InmemoryGraphDatabaseConfigurationInstanceIdTest.java │ │ │ ├── MultiPageEntryBufferTest.java │ │ │ └── TestPagedBufferColumnValueStore.java │ │ └── graphdb │ │ └── inmemory │ │ ├── InMemoryConfigurationTest.java │ │ ├── InMemoryCustomIdTest.java │ │ ├── InMemoryGraphTest.java │ │ ├── InMemoryJanusGraphIoTest.java │ │ ├── InMemoryLazyLoadGraphTest.java │ │ ├── InMemoryOLAPTest.java │ │ └── InMemoryPartitionGraphTest.java │ └── resources │ └── log4j2-test.xml ├── janusgraph-lucene ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── lucene │ │ ├── LuceneCustomAnalyzer.java │ │ ├── LuceneIndex.java │ │ ├── NumericTranslationQueryParser.java │ │ └── SumCollector.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── diskstorage │ │ └── lucene │ │ │ ├── BerkeleyLuceneTest.java │ │ │ ├── LuceneExample.java │ │ │ └── LuceneIndexTest.java │ │ └── graphdb │ │ └── BerkeleyLuceneIndexMetricTest.java │ └── resources │ └── log4j2-test.xml ├── janusgraph-mixed-index-utils ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── mixed │ │ └── utils │ │ ├── CircleUtils.java │ │ ├── MixedIndexUtilsConfigOptions.java │ │ └── processor │ │ ├── CircleProcessor.java │ │ ├── DynamicErrorDistanceCircleProcessor.java │ │ ├── ErrorDistanceCircleProcessor.java │ │ ├── FixedErrorDistanceCircleProcessor.java │ │ └── NoTransformCircleProcessor.java │ └── test │ └── java │ └── org │ └── janusgraph │ └── diskstorage │ └── mixed │ └── utils │ ├── CircleUtilsTest.java │ └── processor │ ├── DynamicErrorDistanceCircleProcessorTest.java │ ├── ErrorDistanceCircleProcessorTest.java │ ├── FixedErrorDistanceCircleProcessorTest.java │ └── NoTransformCircleProcessorTest.java ├── janusgraph-scylla ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── janusgraph │ └── diskstorage │ └── cql │ └── ScyllaStoreManager.java ├── janusgraph-server ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── graphdb │ │ ├── grpc │ │ ├── JanusGraphContextHandler.java │ │ ├── JanusGraphManagerServiceImpl.java │ │ └── schema │ │ │ ├── SchemaManagerImpl.java │ │ │ ├── SchemaManagerProvider.java │ │ │ └── util │ │ │ └── GrpcUtils.java │ │ ├── server │ │ ├── JanusGraphServer.java │ │ ├── JanusGraphSettings.java │ │ └── util │ │ │ └── JanusGraphSettingsUtils.java │ │ └── tinkerpop │ │ └── gremlin │ │ └── server │ │ ├── auth │ │ ├── HMACAuthenticator.java │ │ ├── JanusGraphAbstractAuthenticator.java │ │ ├── JanusGraphSimpleAuthenticator.java │ │ └── SaslAndHMACAuthenticator.java │ │ └── handler │ │ ├── HttpHMACAuthenticationHandler.java │ │ └── SaslAndHMACAuthenticationHandler.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ └── graphdb │ │ ├── grpc │ │ ├── JanusGraphGrpcServerBaseTest.java │ │ ├── JanusGraphManagerClientTest.java │ │ └── schema │ │ │ ├── SchemaManagerClientTest.java │ │ │ └── SchemaManagerImplTest.java │ │ ├── server │ │ ├── JanusGraphServerTest.java │ │ ├── JanusGraphSettingsTest.java │ │ └── util │ │ │ └── JanusGraphSettingsUtilsTest.java │ │ └── tinkerpop │ │ ├── AbstractGremlinServerIntegrationTest.java │ │ ├── ConfigurationManagementGraphServerTest.java │ │ ├── JanusGraphSerializerBaseIT.java │ │ ├── TestClientFactory.java │ │ └── gremlin │ │ └── server │ │ ├── auth │ │ ├── ConfigBuilder.java │ │ ├── CredentialsBuilder.java │ │ ├── HMACAuthenticatorTest.java │ │ ├── HmacConfigBuilder.java │ │ ├── JanusGraphAbstractAuthenticatorTest.java │ │ ├── JanusGraphSimpleAuthenticatorTest.java │ │ ├── MockedHmacAuthenticatorFactory.java │ │ ├── MockedJanusGraphAuthenticatorFactory.java │ │ ├── MockedSaslAndHmacAuthenticatorFactory.java │ │ ├── MockedSimpleAuthenticatorFactory.java │ │ └── SaslAndHMACAuthenticatorTest.java │ │ ├── handler │ │ ├── HttpHMACAuthenticationHandlerTest.java │ │ └── SaslAndHMACAuthenticationHandlerTest.java │ │ └── io │ │ ├── JanusGraphBinaryModuleIT.java │ │ └── JanusGraphSONModuleIT.java │ └── resources │ ├── conf │ ├── janusgraph-inmemory-custom-id.properties │ ├── janusgraph-inmemory.properties │ └── janusgraph-server-integration.properties │ ├── empty-sample.groovy │ ├── invalid-config.yaml │ ├── janusgraph-inmemory.properties │ ├── janusgraph-server-custom-id.yaml │ ├── janusgraph-server-integration.yaml │ ├── janusgraph-server-with-grpc.yaml │ ├── janusgraph-server-with-serializers.yaml │ ├── janusgraph-server-without-serializers.yaml │ ├── log4j2-test.xml │ └── tinkergraph.properties ├── janusgraph-solr ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── solr │ │ ├── SolrIndex.java │ │ ├── SolrResultIterator.java │ │ ├── UncheckedSolrException.java │ │ └── transform │ │ └── GeoToWktConverter.java │ └── test │ ├── java │ └── org │ │ ├── apache │ │ └── solr │ │ │ └── cloud │ │ │ └── ConfigurableMiniSolrCloudCluster.java │ │ └── janusgraph │ │ └── diskstorage │ │ └── solr │ │ ├── BerkeleySolrTest.java │ │ ├── CQLSolrCustomIdTest.java │ │ ├── CQLSolrTest.java │ │ ├── JanusGraphSolrContainer.java │ │ ├── MiniKDC.java │ │ ├── SolrIndexKerberosKeytabTest.java │ │ ├── SolrIndexKerberosMissingConfigTest.java │ │ ├── SolrIndexTest.java │ │ ├── SolrIndexWithoutKerberosTest.java │ │ ├── SolrJanusGraphIndexTest.java │ │ ├── SolrRunner.java │ │ ├── SolrTestCategory.java │ │ ├── StandardTokenizerTest.java │ │ └── transform │ │ └── GeoToWktConverterTest.java │ └── resources │ ├── collections.txt │ ├── import-collections.sh │ ├── log4j2-test.xml │ └── solr │ ├── core-template │ ├── currency.xml │ ├── lang │ │ └── stopwords_en.txt │ ├── protwords.txt │ ├── schema.xml │ ├── solrconfig.xml │ ├── stopwords.txt │ └── synonyms.txt │ ├── jaas_keytab.conf │ └── solr.xml ├── janusgraph-test ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── janusgraph │ │ └── diskstorage │ │ └── cache │ │ └── KCVSCacheTest.java │ └── test │ ├── java │ └── org │ │ └── janusgraph │ │ ├── core │ │ ├── ThreadLocalTxLeakTest.java │ │ ├── attribute │ │ │ ├── GeoshapeTest.java │ │ │ └── TextTest.java │ │ ├── schema │ │ │ └── JanusGraphDefaultSchemaMakerTest.java │ │ └── util │ │ │ └── ReflectiveConfigOptionLoaderTest.java │ │ ├── diskstorage │ │ ├── BackendTest.java │ │ ├── ExpectedValueCheckingTest.java │ │ ├── cache │ │ │ └── ExpirationCacheTest.java │ │ ├── common │ │ │ └── LocalStoreManagerTest.java │ │ ├── configuration │ │ │ ├── CommonConfigTest.java │ │ │ ├── ConfigElementTest.java │ │ │ ├── ConfigurationTest.java │ │ │ ├── CustomTestExecutorService.java │ │ │ ├── ExecutorServiceBuilderTest.java │ │ │ ├── ExecutorServiceInstrumentationTest.java │ │ │ ├── KCVSConfigTest.java │ │ │ ├── UserModifiableConfigurationTest.java │ │ │ ├── builder │ │ │ │ └── ReadConfigurationBuilderTest.java │ │ │ └── converter │ │ │ │ └── ReadConfigurationConverterTest.java │ │ ├── keycolumnvalue │ │ │ ├── StaticArrayEntryTest.java │ │ │ └── scan │ │ │ │ ├── CompletedJobFutureTest.java │ │ │ │ ├── EmptyScanJobFutureTest.java │ │ │ │ └── FailedJobFutureTest.java │ │ ├── locking │ │ │ ├── ConsistentKeyLockerTest.java │ │ │ ├── LocalLockMediatorTest.java │ │ │ ├── LockCleanerRunnableTest.java │ │ │ └── LockCleanerServiceTest.java │ │ └── util │ │ │ ├── ArrayUtilTest.java │ │ │ ├── BufferUtilTest.java │ │ │ ├── MetricInstrumentedStoreManagerTest.java │ │ │ ├── StaticArrayBufferTest.java │ │ │ ├── StaticArrayEntryTest.java │ │ │ └── StorageFeaturesTest.java │ │ ├── graphdb │ │ ├── JanusGraphFactoryShorthandTest.java │ │ ├── TestCoreElements.java │ │ ├── VertexListTest.java │ │ ├── configuration │ │ │ ├── GraphDatabaseConfigurationTest.java │ │ │ ├── TinkerpopFeaturesTest.java │ │ │ ├── converter │ │ │ │ └── RegisteredAttributeClassesConverterTest.java │ │ │ └── validator │ │ │ │ └── CompatibilityValidatorTest.java │ │ ├── database │ │ │ ├── IndexSerializerTest.java │ │ │ └── serialize │ │ │ │ └── attribute │ │ │ │ ├── DateSerializerTest.java │ │ │ │ └── UUIDSerializerTest.java │ │ ├── idmanagement │ │ │ ├── IDManagementTest.java │ │ │ ├── IDPoolTest.java │ │ │ ├── MockIDAuthority.java │ │ │ ├── PartitionIDRangeTest.java │ │ │ ├── RidGenerationTest.java │ │ │ ├── UniqueInstanceIdRetrieverConcurrencyTest.java │ │ │ ├── UniqueInstanceIdRetrieverTest.java │ │ │ ├── VariableLongTest.java │ │ │ └── VertexIDAssignerTest.java │ │ ├── log │ │ │ └── StandardLogProcessorFrameworkTest.java │ │ ├── management │ │ │ ├── ConfigurationManagementGraphTest.java │ │ │ └── ManagementLoggerGraphCacheEvictionTest.java │ │ ├── predicate │ │ │ ├── AndJanusPredicateTest.java │ │ │ ├── ConnectiveJanusGraphPTest.java │ │ │ ├── ConnectiveJanusPredicateTest.java │ │ │ └── OrJanusPredicateTest.java │ │ ├── query │ │ │ ├── QueryTest.java │ │ │ ├── QueryUtilTest.java │ │ │ └── vertex │ │ │ │ └── VertexIdListTest.java │ │ ├── serializer │ │ │ ├── EdgeSerializerTest.java │ │ │ ├── SerializerGraphConfiguration.java │ │ │ ├── SerializerSpeedTest.java │ │ │ ├── SerializerTest.java │ │ │ ├── SerializerTestCommon.java │ │ │ └── attributes │ │ │ │ ├── TClass1.java │ │ │ │ ├── TClass1Serializer.java │ │ │ │ ├── TClass2.java │ │ │ │ ├── TClass2Serializer.java │ │ │ │ ├── TEnum.java │ │ │ │ ├── TEnumSerializer.java │ │ │ │ └── THashMapSerializer.java │ │ ├── tinkerpop │ │ │ ├── optimize │ │ │ │ ├── AdjacentVertexFilterOptimizerStrategyTest.java │ │ │ │ ├── AdjacentVertexHasIdOptimizerStrategyTest.java │ │ │ │ ├── AdjacentVertexHasUniquePropertyOptimizerStrategyTest.java │ │ │ │ ├── AdjacentVertexIsOptimizerStrategyTest.java │ │ │ │ ├── JanusGraphIoRegistrationStrategyTest.java │ │ │ │ ├── JanusGraphLocalQueryOptimizerStrategyTest.java │ │ │ │ ├── JanusGraphMultiQueryStepTest.java │ │ │ │ ├── JanusGraphMultiQueryStrategyTest.java │ │ │ │ ├── JanusGraphStepStrategyTest.java │ │ │ │ └── OptimizerStrategyTest.java │ │ │ └── plugin │ │ │ │ └── JanusGraphGremlinPluginTest.java │ │ ├── transaction │ │ │ ├── StandardJanusGraphTxTest.java │ │ │ ├── StandardTransactionBuilderTest.java │ │ │ ├── addedrelations │ │ │ │ └── EmptyAddedRelationsTest.java │ │ │ ├── indexcache │ │ │ │ └── EmptyIndexCacheTest.java │ │ │ ├── subquerycache │ │ │ │ └── EmptySubqueryCacheTest.java │ │ │ └── vertexcache │ │ │ │ └── EmptyVertexCacheTest.java │ │ ├── util │ │ │ ├── ArraysUtil.java │ │ │ ├── CloseableIteratorUtilsTest.java │ │ │ ├── IntHashSet.java │ │ │ ├── IntSet.java │ │ │ ├── MultiDistinctUnorderedIteratorTest.java │ │ │ └── MultiIteratorTest.java │ │ └── vertices │ │ │ ├── CacheVertexTest.java │ │ │ └── StandardVertexTest.java │ │ ├── testutil │ │ └── ObjectSizer.java │ │ └── util │ │ ├── LoggerUtilTest.java │ │ ├── StringEncodingTest.java │ │ ├── datastructures │ │ ├── AbstractIdListUtilTest.java │ │ ├── BitMapTest.java │ │ ├── PowerSetTest.java │ │ └── RelationCacheTest.java │ │ └── interval │ │ └── IntervalTest.java │ └── resources │ ├── log4j2-test.xml │ ├── org │ └── janusgraph │ │ └── core │ │ └── janusgraph-testing.properties │ └── rexster-fragment.xml ├── janusgraph.png ├── mkdocs.yml ├── pom.xml ├── requirements.txt └── scylla-hadoop-util └── pom.xml /.backportrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "repoOwner": "janusgraph", 3 | "repoName": "janusgraph", 4 | "targetBranchChoices": ["v1.1"], 5 | "branchLabelMapping": { 6 | "^backport/(.+)$": "$1" 7 | }, 8 | "autoMerge": true, 9 | "autoMergeMethod": "rebase", 10 | "targetPRLabels": ["backport/skip"] 11 | } 12 | -------------------------------------------------------------------------------- /.codecov.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | codecov: 16 | notify: 17 | wait_for_ci: yes 18 | 19 | coverage: 20 | status: 21 | patch: 22 | default: 23 | threshold: 5 24 | project: 25 | default: 26 | # allow test coverage to drop by 2%, assume that it's typically due to CI problems 27 | threshold: 2 28 | 29 | comment: false 30 | 31 | # Ignore test files 32 | ignore: 33 | - "**/test/**" 34 | - "janusgraph-backend-testutils/**" 35 | - "janusgraph-test/**" 36 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Copyright 2020 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # https://editorconfig.org 16 | 17 | root = true 18 | 19 | [*] 20 | charset = utf-8 21 | indent_style = space 22 | indent_size = 4 23 | 24 | [*.{yaml,yml}] 25 | indent_size = 2 26 | 27 | [*.xml] 28 | insert_final_newline = false 29 | 30 | [*.proto] 31 | insert_final_newline = true 32 | 33 | [*.java] 34 | insert_final_newline = true 35 | ij_java_use_single_class_imports = true 36 | ij_java_class_count_to_use_import_on_demand = 1000 37 | ij_java_names_count_to_use_import_on_demand = 1000 38 | ij_java_imports_layout = *,|,java.**,javax.**,|,$* 39 | ij_java_layout_static_imports_separately = true -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # These are supported funding model platforms 16 | 17 | custom: ['https://crowdfunding.lfx.linuxfoundation.org/projects/janusgraph'] 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: JanusGraph can't do all the things, but maybe it can do your things. 4 | 5 | --- 6 | 9 | **Describe the feature:** 10 | [Please add a description for your feature.] 11 | 12 | **Describe a specific use case for the feature:** 13 | [If possible add a description of the specific use case.] 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/flaky-test.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Flaky Test 3 | about: Report a flaky test (one that doesn't pass consistently) 4 | labels: "testing/flaky" 5 | 6 | --- 7 | 8 | ## Flaky Test 9 | 10 | * **Test Name:** 11 | * **Link:** 12 | * **Branch:** 13 | * **Notes:** 14 | 15 | ### Stack Trace 16 | 17 | ``` 18 | paste stack trace here 19 | ``` 20 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: maven 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "11:00" 8 | open-pull-requests-limit: 10 9 | groups: 10 | junit: 11 | patterns: 12 | - "org.junit.*" 13 | labels: 14 | - "backport/v1.1" 15 | - "dependencies" 16 | - "java" 17 | 18 | - package-ecosystem: github-actions 19 | directory: "/" 20 | schedule: 21 | interval: daily 22 | time: "11:00" 23 | open-pull-requests-limit: 10 24 | labels: 25 | - "backport/v1.1" 26 | - "dependencies" 27 | -------------------------------------------------------------------------------- /.github/workflows/ci-release-dummy.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2023 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | name: CI Release 16 | 17 | on: 18 | pull_request: 19 | paths: 20 | - 'docs/**' 21 | - '.github/workflows/ci-docs.yml' 22 | - '.github/ISSUE_TEMPLATE/**' 23 | - 'requirements.txt' 24 | - 'mkdocs.yml' 25 | - 'docs.Dockerfile' 26 | - '*.md' 27 | 28 | jobs: 29 | dist-tests: 30 | runs-on: ubuntu-22.04 31 | strategy: 32 | matrix: 33 | include: 34 | - args: "" 35 | java: 8 36 | - args: "-Pjava-11" 37 | java: 11 38 | steps: 39 | - run: 'echo "No build required"' 40 | -------------------------------------------------------------------------------- /.remarkrc.yml: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2019 JanusGraph Authors 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | plugins: 17 | lint-list-item-indent: mixed -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | # This is the official list of JanusGraph authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS.txt files. 3 | # See the latter for an explanation. 4 | 5 | # Names should be added to this file as one of 6 | # Organization's name 7 | # Organization's name ... 8 | # Individual's name 9 | # Individual's name 10 | # See CONTRIBUTORS.txt for the meaning of multiple email addresses. 11 | 12 | # Please keep the list sorted. 13 | 14 | Amazon 15 | Aurelius 16 | DataStax 17 | Dylan Bethune-Waddell 18 | Expero 19 | G Data 20 | Google 21 | Mapped 22 | Orion Health 23 | IBM 24 | Rafael Fernandes 25 | Robert Dale 26 | Seeq 27 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | All participants agree to abide by the Code of Conduct available at https://lfprojects.org/policies/code-of-conduct/ 4 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | [Currently supported versions](https://docs.janusgraph.org/changelog/#currently-supported) of JanusGraph 6 | continue to receive security updates. If you are using an older version of JanusGraph that is no longer 7 | supported, please update to a supported version to continue to receive security updates. 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Please report security vulnerabilities privately to the JanusGraph Technical Steering Committee (TSC) by sending 12 | an email to: **security (at) janusgraph.org** — please do not post security vulnerabilities to the public issue 13 | tracker. 14 | -------------------------------------------------------------------------------- /cassandra-hadoop-util/src/main/java/org/apache/cassandra/schema/SchemaConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package org.apache.cassandra.schema; 20 | 21 | public final class SchemaConstants 22 | { 23 | public static final String SYSTEM_KEYSPACE_NAME = "system"; 24 | } 25 | -------------------------------------------------------------------------------- /docs.Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 JanusGraph Authors 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | FROM python:3.12 17 | 18 | ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin 19 | 20 | COPY requirements.txt /mkdocs/ 21 | WORKDIR /mkdocs 22 | VOLUME /mkdocs 23 | 24 | RUN pip3 install --user -r requirements.txt 25 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | docs.janusgraph.org 2 | -------------------------------------------------------------------------------- /docs/advanced-topics/bigtablemodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/bigtablemodel.png -------------------------------------------------------------------------------- /docs/advanced-topics/github_distribution_builds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/github_distribution_builds.png -------------------------------------------------------------------------------- /docs/advanced-topics/github_expired_distribution_builds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/github_expired_distribution_builds.png -------------------------------------------------------------------------------- /docs/advanced-topics/github_release_ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/github_release_ci.png -------------------------------------------------------------------------------- /docs/advanced-topics/relationlayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/relationlayout.png -------------------------------------------------------------------------------- /docs/advanced-topics/storagelayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/advanced-topics/storagelayout.png -------------------------------------------------------------------------------- /docs/basics/connecting/index.md: -------------------------------------------------------------------------------- 1 | JanusGraph can be queried from all languages for which a TinkerPop 2 | driver exists. Drivers allow sending of Gremlin traversals to a Gremlin 3 | Server like the [JanusGraph Server](../../operations/server.md). A list of TinkerPop 4 | drivers is available on [TinkerPop’s homepage](https://tinkerpop.apache.org/#language-drivers). 5 | 6 | In addition to drivers, there exist 7 | [query languages for TinkerPop](https://tinkerpop.apache.org/#language-variants-compilers) 8 | that make it easier to use Gremlin in different programming languages 9 | like Java, Python, or C\#. Some of these languages even construct 10 | Gremlin traversals from completely different query languages like Cypher 11 | or SPARQL. Since JanusGraph implements TinkerPop, all of these languages 12 | can be used together with JanusGraph. 13 | -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/favicon.ico -------------------------------------------------------------------------------- /docs/getting-started/graph-of-the-gods-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/getting-started/graph-of-the-gods-2.png -------------------------------------------------------------------------------- /docs/index-backend/index.md: -------------------------------------------------------------------------------- 1 | While JanusGraph's composite graph indexes are natively supported through the primary storage backend, mixed graph indexes require that an indexing backend is configured. Mixed indexes provide support for geo, numeric range, and full-text search. 2 | 3 | The choice of index backend determines which search features are supported, as well as the performance and scalability of the index. JanusGraph currently supports three index backends: [Elasticsearch](elasticsearch.md), [Apache Solr](solr.md) and [Apache Lucene](lucene.md). 4 | 5 | Use [Elasticsearch](elasticsearch.md) or [Apache Solr](solr.md) when there is an expectation that JanusGraph will be distributed across multiple machines. [Apache Lucene](lucene.md) performs better in small scale, single machine applications. It performs better in unit tests, for instance. -------------------------------------------------------------------------------- /docs/janusgraph-logomark.svg: -------------------------------------------------------------------------------- 1 | JanusGraph logomark black rev RGB -------------------------------------------------------------------------------- /docs/janusgraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/janusgraph.png -------------------------------------------------------------------------------- /docs/storage-backend/index.md: -------------------------------------------------------------------------------- 1 | JanusGraph’s data storage layer is pluggable. Implementations of the 2 | pluggable storage layer — that is, the software component tells 3 | JanusGraph how to talk to its data store — are called storage backends. 4 | 5 | This section describes configuration and administration of JanusGraph’s 6 | standard storage backends. 7 | 8 | This section only addresses configuration of the stock storage backends 9 | that come with JanusGraph. 10 | -------------------------------------------------------------------------------- /docs/storage-backend/modes-distributed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/storage-backend/modes-distributed.png -------------------------------------------------------------------------------- /docs/storage-backend/modes-local.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/storage-backend/modes-local.png -------------------------------------------------------------------------------- /docs/storage-backend/modes-rexster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/storage-backend/modes-rexster.png -------------------------------------------------------------------------------- /docs/theme/extra.css: -------------------------------------------------------------------------------- 1 | table.users-table td { 2 | vertical-align:middle; 3 | text-align:center; 4 | padding: 10px; 5 | width: 200px; 6 | height: 140px; 7 | } 8 | table.users-table img { 9 | margin: auto auto; 10 | display: block; 11 | max-width: 180px; 12 | max-height: 120px; 13 | width: auto; 14 | height: auto; 15 | } -------------------------------------------------------------------------------- /docs/theme/js/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/docs/theme/js/.gitkeep -------------------------------------------------------------------------------- /janusgraph-all/src/main/resources/META-INF/services/org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShimService: -------------------------------------------------------------------------------- 1 | org.janusgraph.hadoop.serialize.JanusGraphKryoShimService 2 | -------------------------------------------------------------------------------- /janusgraph-all/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/JanusGraphBaseStoreFeaturesTest.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph; 16 | 17 | import org.janusgraph.diskstorage.keycolumnvalue.StoreFeatures; 18 | 19 | public interface JanusGraphBaseStoreFeaturesTest { 20 | StoreFeatures getStoreFeatures(); 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/TestCategory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph; 16 | 17 | public final class TestCategory { 18 | public static final String BRITTLE_TESTS = "BRITTLE_TESTS"; 19 | public static final String SERIAL_TESTS = "SERIAL_TESTS"; 20 | public static final String MEMORY_TESTS = "MEMORY_TESTS"; 21 | public static final String PERFORMANCE_TESTS = "PERFORMANCE_TESTS"; 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/graphdb/serializer/SpecialInt.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.serializer; 16 | 17 | import java.io.Serializable; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | 23 | public class SpecialInt implements Serializable { 24 | 25 | private final int value; 26 | 27 | public SpecialInt(int value) { 28 | this.value = value; 29 | } 30 | 31 | public int getValue() { 32 | return value; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/testutil/FeatureFlag.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.testutil; 16 | 17 | import org.junit.jupiter.api.extension.ExtendWith; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | @Retention(RetentionPolicy.RUNTIME) 25 | @Target({ElementType.METHOD}) 26 | @ExtendWith(FeatureRequirementCondition.class) 27 | public @interface FeatureFlag { 28 | JanusGraphFeature feature(); 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/testutil/JanusGraphFeature.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.testutil; 16 | 17 | public enum JanusGraphFeature { 18 | CellTtl, 19 | Scan, 20 | OrderedScan, 21 | UnorderedScan, 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/java/org/janusgraph/testutil/RetryingTestFailure.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // Based on Stackoverflow post: https://stackoverflow.com/a/46207476/2978513 16 | // License: https://choosealicense.com/licenses/unlicense/ 17 | 18 | package org.janusgraph.testutil; 19 | 20 | public class RetryingTestFailure extends Exception { 21 | public RetryingTestFailure(int invocation, Throwable cause) { 22 | super("Failed test execution at invocation #" + invocation, cause); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-backend-testutils/src/main/resources/test_simple_schema_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "vertexLabels": [ 3 | { 4 | "label": "organization" 5 | }, 6 | { 7 | "label": "user" 8 | } 9 | ], 10 | 11 | "edgeLabels": [ 12 | { 13 | "label": "connects", 14 | "multiplicity": "SIMPLE", 15 | "unidirected": false 16 | }, 17 | { 18 | "label": "viewed", 19 | "multiplicity": "MULTI", 20 | "unidirected": true 21 | } 22 | ], 23 | 24 | "propertyKeys": [ 25 | { 26 | "key": "time", 27 | "className": "java.lang.Long" 28 | }, 29 | { 30 | "key": "doubleProp", 31 | "className": "java.lang.Double" 32 | }, 33 | { 34 | "key": "integerProp", 35 | "className": "java.lang.Integer" 36 | }, 37 | { 38 | "key": "longPropCardinalityList", 39 | "className": "java.lang.Long", 40 | "cardinality": "LIST" 41 | }, 42 | { 43 | "key": "name", 44 | "className": "java.lang.String", 45 | "cardinality": "SINGLE" 46 | } 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /janusgraph-benchmark/src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /janusgraph-berkeleyje/src/test/java/org/janusgraph/graphdb/berkeleyje/BerkeleyOLAPTest.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.berkeleyje; 16 | 17 | import org.janusgraph.BerkeleyStorageSetup; 18 | import org.janusgraph.diskstorage.configuration.WriteConfiguration; 19 | import org.janusgraph.olap.OLAPTest; 20 | 21 | public class BerkeleyOLAPTest extends OLAPTest { 22 | 23 | @Override 24 | public WriteConfiguration getConfiguration() { 25 | return BerkeleyStorageSetup.getBerkeleyJEGraphConfiguration(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-berkeleyje/src/test/java/org/janusgraph/graphdb/database/management/BerkeleyManagementTest.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.management; 16 | 17 | import org.janusgraph.BerkeleyStorageSetup; 18 | import org.janusgraph.diskstorage.configuration.WriteConfiguration; 19 | 20 | public class BerkeleyManagementTest extends ManagementTest { 21 | @Override 22 | public WriteConfiguration getConfiguration() { 23 | return BerkeleyStorageSetup.getBerkeleyJEGraphConfiguration(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /janusgraph-berkeleyje/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-berkeleyje/src/test/resources/rexster-fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | home 5 | 6 | local 7 | 8 | 9 | 10 | tp:gremlin 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/Idfiable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core; 16 | 17 | /** 18 | * Represents an entity that can be uniquely identified by an id. 19 | * 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface Idfiable { 23 | 24 | /** 25 | * Unique identifier for this entity. 26 | * 27 | * @return Unique id for this entity 28 | */ 29 | Object id(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/JanusGraphProperty.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core; 16 | 17 | import org.apache.tinkerpop.gremlin.structure.Property; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface JanusGraphProperty extends Property { 23 | 24 | PropertyKey propertyKey(); 25 | 26 | @Override 27 | default String key() { 28 | return propertyKey().name(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/Namifiable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core; 16 | 17 | /** 18 | * Represents an entity that can be uniquely identified by a String name. 19 | * 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface Namifiable { 23 | 24 | /** 25 | * Returns the unique name of this entity. 26 | * 27 | * @return Name of this entity. 28 | */ 29 | String name(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/ReadOnlyTransactionException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core; 16 | 17 | public class ReadOnlyTransactionException extends UnsupportedOperationException { 18 | 19 | public ReadOnlyTransactionException(String msg) { 20 | super(msg); 21 | } 22 | 23 | public ReadOnlyTransactionException(String msg, Throwable cause) { 24 | super(msg, cause); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/Index.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema; 16 | 17 | /** 18 | * Schema Elements that represent an index in the graph 19 | * 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface Index extends JanusGraphSchemaElement { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/SchemaInitStrategy.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema; 16 | 17 | import org.janusgraph.core.JanusGraph; 18 | import org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration; 19 | 20 | public interface SchemaInitStrategy { 21 | 22 | JanusGraph initializeSchemaAndStart(GraphDatabaseConfiguration graphDatabaseConfiguration); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/creator/JsonSchemaCreator.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.creator; 16 | 17 | public interface JsonSchemaCreator { 18 | 19 | boolean create(T definition, JsonSchemaCreationContext context); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/creator/SchemaCreationException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.creator; 16 | 17 | public class SchemaCreationException extends RuntimeException { 18 | 19 | public SchemaCreationException(Throwable throwable) { 20 | super(throwable); 21 | } 22 | 23 | public SchemaCreationException(String msg) { 24 | super(msg); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/definition/index/AbstractJsonIndexDefinition.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.definition.index; 16 | 17 | public abstract class AbstractJsonIndexDefinition { 18 | 19 | private String name; 20 | 21 | public String getName() { 22 | return name; 23 | } 24 | 25 | public void setName(String name) { 26 | this.name = name; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/definition/index/JsonMixedIndexDefinition.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.definition.index; 16 | 17 | public class JsonMixedIndexDefinition extends AbstractJsonGraphCentricIndexDefinition { 18 | 19 | private String indexBackend; 20 | 21 | public String getIndexBackend() { 22 | return indexBackend; 23 | } 24 | 25 | public void setIndexBackend(String indexBackend) { 26 | this.indexBackend = indexBackend; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/BooleanJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class BooleanJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Boolean.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/ByteJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class ByteJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Byte.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/DoubleJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class DoubleJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Double.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/FloatJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class FloatJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Float.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/IntegerJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class IntegerJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Integer.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/JsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public interface JsonParameterParser { 20 | 21 | Parameter parse(String key, String value); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/LongJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class LongJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Long.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/ShortJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class ShortJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, Short.valueOf(value)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/core/schema/json/parser/StringJsonParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.core.schema.json.parser; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | 19 | public class StringJsonParameterParser implements JsonParameterParser { 20 | @Override 21 | public Parameter parse(String key, String value) { 22 | return Parameter.of(key, value); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/LoggableTransaction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage; 16 | 17 | import org.janusgraph.graphdb.database.serialize.DataOutput; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface LoggableTransaction extends BaseTransaction { 23 | 24 | void logMutations(DataOutput out); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/MetaAnnotatable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface MetaAnnotatable { 21 | 22 | Object setMetaData(EntryMetaData key, Object value); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/MetaAnnotated.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage; 16 | 17 | import java.util.Map; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface MetaAnnotated { 23 | 24 | /** 25 | * @return true if this entry has associated meta data 26 | */ 27 | boolean hasMetaData(); 28 | 29 | /** 30 | * @return all meta data associated with this entry 31 | */ 32 | Map getMetaData(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/ReadBuffer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage; 16 | 17 | /** 18 | * A Buffer that allows sequential reads and static reads. 19 | * Should not be used by multiple threads. 20 | * 21 | * @author Matthias Broecheler (me@matthiasb.com) 22 | */ 23 | public interface ReadBuffer extends ScanBuffer, StaticBuffer { 24 | 25 | int getPosition(); 26 | 27 | void movePositionTo(int position); 28 | 29 | T asRelative(Factory factory); 30 | 31 | ReadBuffer subrange(int length, boolean invert); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/configuration/ConcurrentWriteConfiguration.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.configuration; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface ConcurrentWriteConfiguration extends WriteConfiguration { 21 | 22 | void set(String key, O value, O expectedValue); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/configuration/SystemConfiguration.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.configuration; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface SystemConfiguration extends Configuration { 21 | 22 | @Override 23 | SystemConfiguration restrictTo(final String... umbrellaElements); 24 | 25 | 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/configuration/WriteConfiguration.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.configuration; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface WriteConfiguration extends ReadConfiguration { 21 | 22 | void set(String key, O value); 23 | 24 | void remove(String key); 25 | 26 | WriteConfiguration copy(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/keycolumnvalue/cache/CachableStaticBuffer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.keycolumnvalue.cache; 16 | 17 | import org.janusgraph.diskstorage.StaticBuffer; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface CachableStaticBuffer extends StaticBuffer { 23 | 24 | int getCacheMarker(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/locking/LockerProvider.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.locking; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface LockerProvider { 21 | 22 | Locker getLocker(String lockerName); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/locking/consistentkey/LockCleanerService.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.locking.consistentkey; 16 | 17 | import org.janusgraph.diskstorage.keycolumnvalue.StoreTransaction; 18 | import org.janusgraph.diskstorage.util.KeyColumn; 19 | 20 | import java.time.Instant; 21 | 22 | public interface LockCleanerService { 23 | void clean(KeyColumn target, Instant cutoff, StoreTransaction tx); 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/log/kcvs/ExternalPersistor.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.log.kcvs; 16 | 17 | import org.janusgraph.diskstorage.Entry; 18 | import org.janusgraph.diskstorage.StaticBuffer; 19 | 20 | /** 21 | * @author Matthias Broecheler (me@matthiasb.com) 22 | */ 23 | public interface ExternalPersistor { 24 | 25 | void add(StaticBuffer key, Entry cell); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/util/CacheMetricsAction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.util; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public enum CacheMetricsAction { 21 | 22 | RETRIEVAL("retrievals"), MISS("misses"), EXPIRE("expire"); 23 | 24 | private final String name; 25 | 26 | CacheMetricsAction(String name) { 27 | this.name = name; 28 | } 29 | 30 | public String getName() { return name; } 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/util/IOCallable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.util; 16 | 17 | import java.io.IOException; 18 | import java.util.concurrent.Callable; 19 | 20 | public interface IOCallable extends Callable { 21 | 22 | @Override 23 | T call() throws IOException; 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/util/RecordIterator.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.util; 16 | 17 | import java.io.Closeable; 18 | import java.util.Iterator; 19 | 20 | /** 21 | * Iterator over records in the storage backend. Behaves like a normal iterator 22 | * with an additional close method so that resources associated with this 23 | * iterator can be released. 24 | * 25 | * @author Matthias Broecheler (me@matthiasb.com) 26 | */ 27 | 28 | public interface RecordIterator extends Iterator, Closeable { } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/util/StorageRunnable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.util; 16 | 17 | import org.janusgraph.diskstorage.BackendException; 18 | 19 | public interface StorageRunnable { 20 | void run() throws BackendException; 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/diskstorage/util/UncheckedCallable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.util; 16 | 17 | import java.util.concurrent.Callable; 18 | 19 | public interface UncheckedCallable extends Callable { 20 | 21 | @Override 22 | T call(); 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/ConfigName.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.configuration; 16 | 17 | public interface ConfigName { 18 | 19 | String getConfigName(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/configuration/PreInitializeConfigOptions.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.configuration; 16 | 17 | import java.lang.annotation.ElementType; 18 | import java.lang.annotation.Retention; 19 | import java.lang.annotation.RetentionPolicy; 20 | import java.lang.annotation.Target; 21 | 22 | @Target({ElementType.TYPE}) 23 | @Retention(RetentionPolicy.RUNTIME) 24 | public @interface PreInitializeConfigOptions { 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/RelationReader.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database; 16 | 17 | import org.janusgraph.diskstorage.Entry; 18 | import org.janusgraph.graphdb.relations.RelationCache; 19 | import org.janusgraph.graphdb.types.TypeInspector; 20 | 21 | /** 22 | * @author Matthias Broecheler (me@matthiasb.com) 23 | */ 24 | public interface RelationReader { 25 | 26 | RelationCache parseRelation(Entry data, boolean parseHeaderOnly, TypeInspector tx); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/idassigner/IDPool.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.idassigner; 16 | 17 | public interface IDPool { 18 | 19 | long nextID(); 20 | 21 | void close(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/index/IndexMutationType.java: -------------------------------------------------------------------------------- 1 | // Copyright 2022 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.index; 16 | 17 | public enum IndexMutationType { 18 | ADD, 19 | UPDATE, 20 | DELETE 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/management/GraphCacheEvictionAction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2018 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.management; 16 | 17 | public enum GraphCacheEvictionAction { 18 | 19 | EVICT, 20 | DO_NOT_EVICT 21 | } 22 | 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/management/MgmtLogType.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.management; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public enum MgmtLogType { 21 | 22 | CACHED_TYPE_EVICTION, CACHED_TYPE_EVICTION_ACK, CONFIG_MUTATION 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/serialize/InternalAttributeUtil.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.serialize; 16 | 17 | import org.janusgraph.core.PropertyKey; 18 | 19 | public class InternalAttributeUtil { 20 | public static boolean hasGenericDataType(PropertyKey key) { 21 | return key.dataType().equals(Object.class); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/serialize/SupportsNullSerializer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.serialize; 16 | 17 | /** 18 | * Marker interface to indicate that a given serializer supports serializing 19 | * null values effectively. 20 | * 21 | * @author Matthias Broecheler (me@matthiasb.com) 22 | */ 23 | public interface SupportsNullSerializer { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/serialize/attribute/JsonNodeParseException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2018 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.serialize.attribute; 16 | 17 | /** 18 | * The exception indicates runtime exception of failed parsing from {@link String} into 19 | * {@link org.apache.tinkerpop.shaded.jackson.databind.JsonNode}. 20 | */ 21 | class JsonNodeParseException extends RuntimeException { 22 | 23 | JsonNodeParseException(Throwable throwable){ 24 | super(throwable); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/database/util/IndexAppliesToFunction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2022 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.database.util; 16 | 17 | import org.janusgraph.core.JanusGraphElement; 18 | import org.janusgraph.graphdb.types.IndexType; 19 | 20 | public interface IndexAppliesToFunction { 21 | boolean indexAppliesTo(IndexType index, JanusGraphElement element); 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/internal/InternalVertexLabel.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.internal; 16 | 17 | import org.janusgraph.core.VertexLabel; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface InternalVertexLabel extends VertexLabel { 23 | 24 | boolean hasDefaultConfiguration(); 25 | 26 | int getTTL(); 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/management/utils/ConfigurationManagementGraphAlreadyInstantiatedException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.management.utils; 16 | 17 | public class ConfigurationManagementGraphAlreadyInstantiatedException extends RuntimeException { 18 | public ConfigurationManagementGraphAlreadyInstantiatedException(String message) { 19 | super(message); 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/management/utils/ConfigurationManagementGraphNotEnabledException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.management.utils; 16 | 17 | public class ConfigurationManagementGraphNotEnabledException extends Exception { 18 | public ConfigurationManagementGraphNotEnabledException(String message) { 19 | super(message); 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/management/utils/JanusGraphManagerException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.management.utils; 16 | 17 | public class JanusGraphManagerException extends RuntimeException { 18 | public JanusGraphManagerException(String message) { 19 | super(message); 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/query/profile/ProfileObservable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.query.profile; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface ProfileObservable { 21 | 22 | default void observeWith(QueryProfiler profiler) { 23 | observeWith(profiler, false); 24 | } 25 | 26 | void observeWith(QueryProfiler profiler, boolean hasSiblings); 27 | 28 | QueryProfiler getProfiler(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/relations/ReassignableRelation.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.relations; 16 | 17 | import org.janusgraph.graphdb.internal.InternalVertex; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface ReassignableRelation { 23 | 24 | void setVertexAt(int pos, InternalVertex vertex); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/relations/StandardRelation.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.relations; 16 | 17 | import org.janusgraph.graphdb.internal.InternalRelation; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | 23 | public interface StandardRelation extends InternalRelation { 24 | 25 | long getPreviousID(); 26 | 27 | void setPreviousID(long previousID); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/tinkerpop/optimize/MultiQueryPositions.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.tinkerpop.optimize; 16 | 17 | import org.apache.tinkerpop.gremlin.process.traversal.Step; 18 | 19 | import java.util.ArrayList; 20 | import java.util.List; 21 | 22 | public class MultiQueryPositions { 23 | 24 | public List firstLoopMultiQueryStepLocations = new ArrayList<>(); 25 | public List currentLoopMultiQueryStepLocations = new ArrayList<>(); 26 | public Step nextLoopMultiQueryStepLocation; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/tinkerpop/optimize/step/fetcher/FetchQueryBuildFunction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.tinkerpop.optimize.step.fetcher; 16 | 17 | import org.janusgraph.core.BaseVertexQuery; 18 | 19 | public interface FetchQueryBuildFunction { 20 | 21 | Q makeQuery(Q query); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/tinkerpop/optimize/step/fetcher/TriggeredBatchConsumer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.tinkerpop.optimize.step.fetcher; 16 | 17 | import java.util.Collection; 18 | 19 | public interface TriggeredBatchConsumer { 20 | 21 | void consume(Collection batch, E triggeringElement); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/tinkerpop/optimize/strategy/MultiQueriableStepRegistrationConsumer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.tinkerpop.optimize.strategy; 16 | 17 | import org.janusgraph.graphdb.tinkerpop.optimize.step.JanusGraphMultiQueryStep; 18 | import org.janusgraph.graphdb.tinkerpop.optimize.step.MultiQueriable; 19 | 20 | public interface MultiQueriableStepRegistrationConsumer { 21 | 22 | void attachClient(JanusGraphMultiQueryStep multiQueryStep, MultiQueriable client); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/VertexFactory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.transaction; 16 | 17 | import org.janusgraph.graphdb.internal.InternalVertex; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface VertexFactory { 23 | 24 | InternalVertex getInternalVertex(Object id); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/transaction/lock/TransactionLock.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.transaction.lock; 16 | 17 | 18 | import java.time.Duration; 19 | 20 | /** 21 | * @author Matthias Broecheler (me@matthiasb.com) 22 | */ 23 | public interface TransactionLock { 24 | 25 | void lock(Duration timeout); 26 | 27 | void unlock(); 28 | 29 | boolean inUse(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/types/MixedIndexType.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.types; 16 | 17 | import org.janusgraph.core.PropertyKey; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface MixedIndexType extends IndexType { 23 | 24 | ParameterIndexField[] getFieldKeys(); 25 | 26 | ParameterIndexField getField(PropertyKey key); 27 | 28 | String getStoreName(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/types/system/SystemRelationType.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.types.system; 16 | 17 | import org.janusgraph.graphdb.internal.InternalRelationType; 18 | 19 | public interface SystemRelationType extends InternalRelationType { 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/util/CloseableAbstractIterator.java: -------------------------------------------------------------------------------- 1 | // Copyright 2020 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.util; 16 | 17 | import com.google.common.collect.AbstractIterator; 18 | import org.apache.tinkerpop.gremlin.structure.util.CloseableIterator; 19 | 20 | public abstract class CloseableAbstractIterator extends AbstractIterator implements CloseableIterator { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/util/CopyStepUtil.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.util; 16 | 17 | import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep; 18 | 19 | public class CopyStepUtil { 20 | 21 | private CopyStepUtil() {} 22 | 23 | public static void copyAbstractStepModifiableFields(AbstractStep originalStep, AbstractStep copiedStep){ 24 | for(String label : originalStep.getLabels()){ 25 | copiedStep.addLabel(label); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/graphdb/util/ExceptionFactory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.util; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | 21 | public class ExceptionFactory { 22 | 23 | public static void graphShutdown() { 24 | throw new IllegalStateException("Graph has been shut down"); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/datastructures/ExceptionWrapper.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.datastructures; 16 | 17 | public class ExceptionWrapper { 18 | 19 | Throwable throwable; 20 | 21 | public Throwable getThrowable() { 22 | return throwable; 23 | } 24 | 25 | public void setThrowable(Throwable throwable) { 26 | this.throwable = throwable; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/datastructures/Interval.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.datastructures; 16 | 17 | import java.util.Collection; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | 23 | public interface Interval { 24 | 25 | T getStart(); 26 | 27 | T getEnd(); 28 | 29 | boolean startInclusive(); 30 | 31 | boolean endInclusive(); 32 | 33 | boolean isPoints(); 34 | 35 | Collection getPoints(); 36 | 37 | boolean isEmpty(); 38 | 39 | Interval intersect(Interval other); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/datastructures/Removable.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.datastructures; 16 | 17 | /** 18 | * Interface to decorate elements that can be removed 19 | * 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface Removable { 23 | 24 | void remove(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/datastructures/Retriever.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.datastructures; 16 | 17 | /** 18 | * Interface for the Retriever design pattern. 19 | * 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface Retriever { 23 | 24 | O get(I input); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/system/ExecuteExceptionallyFunction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.system; 16 | 17 | public interface ExecuteExceptionallyFunction { 18 | 19 | void execute() throws Throwable; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/java/org/janusgraph/util/system/LoggerUtil.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.system; 16 | 17 | import org.janusgraph.util.encoding.StringEncoding; 18 | 19 | public class LoggerUtil { 20 | 21 | /** 22 | * Encode newline characters and launder string to mitigate log forging vulnerability. 23 | * @param input 24 | * @return 25 | */ 26 | public static String sanitizeAndLaunder(Object input) { 27 | return input != null ? StringEncoding.launder(input.toString().replaceAll("[\n\r]", "%0A")) : null; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/resources/META-INF/services/org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin: -------------------------------------------------------------------------------- 1 | org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin 2 | -------------------------------------------------------------------------------- /janusgraph-core/src/main/resources/org/janusgraph/graphdb/configuration/janusgraph.internal.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | janusgraph.version=${project.version} 16 | janusgraph.storage-version=2 17 | janusgraph.upgradeable-fixed=storage-version,janusgraph-version,titan-version 18 | titan.compatible-versions=${titan.compatible-versions} 19 | -------------------------------------------------------------------------------- /janusgraph-cql/src/main/java/org/janusgraph/diskstorage/cql/function/ConsumerWithBackendException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.cql.function; 16 | 17 | import org.janusgraph.diskstorage.BackendException; 18 | 19 | public interface ConsumerWithBackendException { 20 | 21 | void accept(T t) throws BackendException; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-cql/src/main/java/org/janusgraph/diskstorage/cql/function/slice/CQLSliceFunction.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.cql.function.slice; 16 | 17 | import org.janusgraph.diskstorage.BackendException; 18 | import org.janusgraph.diskstorage.EntryList; 19 | import org.janusgraph.diskstorage.keycolumnvalue.StoreTransaction; 20 | 21 | import java.util.concurrent.CompletableFuture; 22 | 23 | public interface CQLSliceFunction { 24 | 25 | CompletableFuture execute(final Q query, final StoreTransaction txh) throws BackendException; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-cql/src/main/java/org/janusgraph/diskstorage/cql/strategy/ResultFiller.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.cql.strategy; 16 | 17 | import org.janusgraph.diskstorage.keycolumnvalue.StoreTransaction; 18 | 19 | public interface ResultFiller { 20 | void execute(R futureResult, 21 | Q queries, 22 | K keys, 23 | final StoreTransaction txh); 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-cql/src/main/java/org/janusgraph/hadoop/formats/cql/CqlInputFormat.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats.cql; 16 | 17 | import org.janusgraph.hadoop.formats.util.HadoopInputFormat; 18 | 19 | public class CqlInputFormat extends HadoopInputFormat { 20 | public CqlInputFormat() { 21 | super(new CqlBinaryInputFormat()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/README.md: -------------------------------------------------------------------------------- 1 | These keystores are just for testing. Under no circumstances should they be 2 | used on any system that matters. They've been public on github and 3 | compromised since they were generated. -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/client.crt -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/client.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/client.keystore -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/client.truststore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/client.truststore -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/node.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/node.crt -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/node.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/node.keystore -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cert/node.truststore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-cql/src/test/resources/cert/node.truststore -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/cqlshrc: -------------------------------------------------------------------------------- 1 | [ssl] 2 | certfile = /etc/ssl/node.crt 3 | keyfile = /etc/ssl/node.key 4 | validate = false 5 | -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/datastaxMisconfiguredResourceTestConfig.conf: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | datastax-java-driver { 16 | basic.contact-points = [ "localhost" ] 17 | basic.session-name = JanusGraphCQLSession 18 | basic.load-balancing-policy.local-datacenter = "datacenter1" 19 | basic.request.timeout = 60000 milliseconds 20 | advanced.connection.connect-timeout = 60000 milliseconds 21 | } 22 | -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/datastaxResourceTestConfigWithoutContactPoints.conf: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | datastax-java-driver { 16 | basic.session-name = JanusGraphCQLSession 17 | basic.load-balancing-policy.local-datacenter = "datacenter1" 18 | basic.request.timeout = 60000 milliseconds 19 | advanced.connection.connect-timeout = 60000 milliseconds 20 | } 21 | -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/docker/janusgraph_docker_entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2017 JanusGraph Authors 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | chmod +x /update_config.py 18 | /update_config.py 19 | /docker-entrypoint.sh cassandra -f 20 | -------------------------------------------------------------------------------- /janusgraph-cql/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-dist/.gitignore: -------------------------------------------------------------------------------- 1 | # Eclipse junk; leading slash makes patterns non-recursive 2 | # Note that * also can't match slashes 3 | /janusgraph-*/.classpath 4 | /janusgraph-*/.project 5 | /janusgraph-*/.settings/ 6 | # End of Eclipse junk 7 | -------------------------------------------------------------------------------- /janusgraph-dist/docker/.dockerignore: -------------------------------------------------------------------------------- 1 | # Copyright 2023 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | examples/ 16 | -------------------------------------------------------------------------------- /janusgraph-dist/docker/examples/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2023 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | version: "3" 16 | 17 | services: 18 | janusgraph: 19 | image: docker.io/janusgraph/janusgraph:latest 20 | container_name: janusgraph-default 21 | ports: 22 | - "8182:8182" 23 | # The mounted volume only makes sense if JanusGraph is being run with the BerekeleyDB storage. 24 | volumes: 25 | - "janusgraph-default-data:/var/lib/janusgraph" 26 | 27 | volumes: 28 | janusgraph-default-data: 29 | -------------------------------------------------------------------------------- /janusgraph-dist/docker/scripts/remote-connect.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2023 JanusGraph Authors 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | :remote connect tinkerpop.server conf/remote.yaml 17 | :> g 18 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/cfilter/conf/janusgraph-berkeleyje.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # JanusGraph configuration sample: BerkeleyDB Java Edition 16 | # 17 | # This file opens a BDB JE instance in the directory 18 | # /path/to/this/file/../db/berkeley. 19 | 20 | #JANUSGRAPHCFG{gremlin.graph=org.janusgraph.core.JanusGraphFactory} 21 | 22 | #JANUSGRAPHCFG{storage.backend=berkeleyje} 23 | 24 | #JANUSGRAPHCFG{storage.directory=../db/berkeley} 25 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/cfilter/conf/janusgraph-inmemory.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2020 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # JanusGraph configuration sample: in-memory 16 | # 17 | # This file connects to an in-memory storage backend 18 | 19 | #JANUSGRAPHCFG{gremlin.graph=org.janusgraph.core.JanusGraphFactory} 20 | 21 | #JANUSGRAPHCFG{storage.backend=inmemory} 22 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/descriptor/archive-full.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | archive 5 | 6 | 7 | zip 8 | 9 | 10 | 11 | ${assembly.descriptor.dir}/common-full.component.xml 12 | ${assembly.descriptor.dir}/htmldocs.component.xml 13 | ${assembly.descriptor.dir}/readmes.component.xml 14 | 15 | 16 | 17 | 18 | ${top.level.basedir}/janusgraph-examples 19 | /examples 20 | 21 | **/target/** 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/descriptor/archive.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | archive 5 | 6 | 7 | zip 8 | 9 | 10 | 11 | ${assembly.descriptor.dir}/common.component.xml 12 | ${assembly.descriptor.dir}/htmldocs.component.xml 13 | ${assembly.descriptor.dir}/readmes.component.xml 14 | 15 | 16 | 17 | 18 | ${top.level.basedir}/janusgraph-examples 19 | /examples 20 | 21 | **/target/** 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/descriptor/htmldocs.component.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | true 8 | 9 | /javadocs 10 | false 11 | 12 | ${project.groupId}:janusgraph-core:jar:javadoc:${project.version} 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/descriptor/javadocs.xml: -------------------------------------------------------------------------------- 1 | 2 | janusgraph-core-javadocs 3 | / 4 | 5 | 6 | dir 7 | 8 | 9 | 10 | 11 | true 12 | / 13 | false 14 | 15 | ${project.groupId}:janusgraph-core:jar:javadoc:${project.version} 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/descriptor/readmes.component.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | ${assembly.txtfile.dir}/LICENSE.txt 7 | / 8 | 9 | 10 | ${assembly.txtfile.dir}/NOTICE.txt 11 | / 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/README.txt: -------------------------------------------------------------------------------- 1 | JanusGraph: Distributed Graph Database 2 | 3 | JanusGraph is a distributed graph database optimized for storing 4 | and processing large-scale graphs within a multi-machine cluster. 5 | 6 | JanusGraph documentation can be found online at: 7 | 8 | https://docs.janusgraph.org 9 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/log4j2-console.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/log4j2-server.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/remote-graph-binary.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | hosts: [localhost] 16 | port: 8182 17 | serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }} 18 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/remote-objects.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | hosts: [localhost] 16 | port: 8182 17 | serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }} 18 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/remote.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | hosts: [localhost] 16 | port: 8182 17 | serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }} 18 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/solr/protwords.txt: -------------------------------------------------------------------------------- 1 | # The ASF licenses this file to You under the Apache License, Version 2.0 2 | # (the "License"); you may not use this file except in compliance with 3 | # the License. You may obtain a copy of the License at 4 | # 5 | # http://www.apache.org/licenses/LICENSE-2.0 6 | # 7 | # Unless required by applicable law or agreed to in writing, software 8 | # distributed under the License is distributed on an "AS IS" BASIS, 9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | # See the License for the specific language governing permissions and 11 | # limitations under the License. 12 | 13 | #----------------------------------------------------------------------- 14 | # Use a protected word file to protect against the stemmer reducing two 15 | # unrelated words to the same base word. 16 | 17 | # Some non-words that normally won't be encountered, 18 | # just to test that they won't be stemmed. 19 | dontstems 20 | zwhacky 21 | 22 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/conf/solr/stopwords.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/grateful-dead.kryo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-dist/src/assembly/static/data/grateful-dead.kryo -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-classic.kryo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-dist/src/assembly/static/data/tinkerpop-classic.kryo -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-classic.txt: -------------------------------------------------------------------------------- 1 | 1:person:marko:29 knows:2:0.5,knows:4:1.0,created:3:0.4 2 | 2:person:vadas:27 3 | 3:project:lop:java 4 | 4:person:josh:32 created:3:0.4,created:5:1.0 5 | 5:project:ripple:java 6 | 6:person:peter:35 created:3:0.2 7 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-crew.kryo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-dist/src/assembly/static/data/tinkerpop-crew.kryo -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-modern.kryo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-dist/src/assembly/static/data/tinkerpop-modern.kryo -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-sink-v2d0-typed.json: -------------------------------------------------------------------------------- 1 | {"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}} 2 | {"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}} 3 | {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}} 4 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-sink-v2d0.json: -------------------------------------------------------------------------------- 1 | {"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}} 2 | {"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}} 3 | {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}} 4 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-sink.json: -------------------------------------------------------------------------------- 1 | {"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}} 2 | {"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}} 3 | {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}} 4 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/data/tinkerpop-sink.kryo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-dist/src/assembly/static/data/tinkerpop-sink.kryo -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/elasticsearch/config/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | path.data: ../db/es/data 16 | path.logs: ../logs 17 | xpack.ml.enabled: false -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/ext/README.txt: -------------------------------------------------------------------------------- 1 | Use this directory to install external jars to the Gremlin Console. -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/ext/plugins.txt: -------------------------------------------------------------------------------- 1 | org.apache.tinkerpop.gremlin.console.jsr223.DriverGremlinPlugin 2 | org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin 3 | org.apache.tinkerpop.gremlin.hadoop.jsr223.HadoopGremlinPlugin 4 | org.apache.tinkerpop.gremlin.spark.jsr223.SparkGremlinPlugin 5 | org.apache.tinkerpop.gremlin.console.jsr223.UtilitiesGremlinPlugin 6 | org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin 7 | -------------------------------------------------------------------------------- /janusgraph-dist/src/assembly/static/logs/.gitkeep: -------------------------------------------------------------------------------- 1 | # Copyright 2020 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License -------------------------------------------------------------------------------- /janusgraph-dist/src/test/java/org/janusgraph/pkgtest/TestCategory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.pkgtest; 16 | 17 | public final class TestCategory { 18 | public static final String FULL_TESTS = "FULL_TESTS"; 19 | } 20 | -------------------------------------------------------------------------------- /janusgraph-dist/src/test/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /janusgraph-dist/src/test/resources/compat.csv: -------------------------------------------------------------------------------- 1 | 0.5.0,bdb-es,https://s3.amazonaws.com/titan-release-compat-test/bdb-es/0.5.0.zip 2 | 1.0.0,bdb-es,https://s3.amazonaws.com/titan-release-compat-test/bdb-es/1.0.0.zip 3 | -------------------------------------------------------------------------------- /janusgraph-dist/src/test/resources/target.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | zipfile.path = ${test.zipfile.path} 16 | zipfile-full.path = ${test.zipfile-full.path} 17 | expect.dir = ${test.expect.dir} 18 | build.dir = ${project.build.directory} 19 | -------------------------------------------------------------------------------- /janusgraph-dist/src/test/resources/test_gremlin_init.groovy: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // Used by gremlin-shell-args.expect.vm 16 | test_i = 2 + 2 17 | test_g = TinkerGraph.open() 18 | test_graph_factory_class = GraphFactory.class 19 | test_janusgraph_factory_class = JanusGraphFactory.class 20 | -------------------------------------------------------------------------------- /janusgraph-driver/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-es/.gitignore: -------------------------------------------------------------------------------- 1 | /bin 2 | /config 3 | -------------------------------------------------------------------------------- /janusgraph-es/src/main/java/org/janusgraph/diskstorage/es/rest/RestAggResponse.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | package org.janusgraph.diskstorage.es.rest; 15 | 16 | import org.apache.tinkerpop.shaded.jackson.annotation.JsonIgnoreProperties; 17 | 18 | @JsonIgnoreProperties(ignoreUnknown=true) 19 | public class RestAggResponse { 20 | private RestAggResult aggregations; 21 | 22 | public RestAggResult getAggregations() { 23 | return aggregations; 24 | } 25 | 26 | public void setAggregations(RestAggResult aggregations) { 27 | this.aggregations = aggregations; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-es/src/main/java/org/janusgraph/diskstorage/es/rest/RestAggValue.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.es.rest; 16 | 17 | import org.apache.tinkerpop.shaded.jackson.annotation.JsonIgnoreProperties; 18 | 19 | @JsonIgnoreProperties(ignoreUnknown=true) 20 | public class RestAggValue { 21 | private double value; 22 | 23 | public double getValue() { 24 | return value; 25 | } 26 | 27 | public void setValue(double value) { 28 | this.value = value; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-es/src/main/java/org/janusgraph/diskstorage/es/rest/RestCountResponse.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.es.rest; 16 | 17 | import org.apache.tinkerpop.shaded.jackson.annotation.JsonIgnoreProperties; 18 | 19 | @JsonIgnoreProperties(ignoreUnknown=true) 20 | public class RestCountResponse { 21 | 22 | private long count; 23 | 24 | public long getCount() { 25 | return count; 26 | } 27 | 28 | public void setCount(long count) { 29 | this.count = count; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /janusgraph-es/src/main/java/org/janusgraph/diskstorage/es/rest/util/HttpAuthTypes.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.es.rest.util; 16 | 17 | public enum HttpAuthTypes { 18 | /** No authentication - default */ 19 | NONE, 20 | /** Basic authentication with username/password */ 21 | BASIC, 22 | /** Custom authentication with a provided authenticator implementation. Please refer to the documentation for 23 | * the custom authenticator. 24 | */ 25 | CUSTOM 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/java/org/janusgraph/diskstorage/es/CustomJsonStringParameterParser.java: -------------------------------------------------------------------------------- 1 | // Copyright 2024 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.es; 16 | 17 | import org.janusgraph.core.schema.Parameter; 18 | import org.janusgraph.core.schema.json.parser.JsonParameterParser; 19 | 20 | public class CustomJsonStringParameterParser implements JsonParameterParser { 21 | 22 | @Override 23 | public Parameter parse(String key, String value) { 24 | return Parameter.of(key, value); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/dynamic_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "test_mapping": { 4 | "date_detection": false, 5 | "properties": { 6 | "boundary": { 7 | "type": "geo_shape", 8 | "tree": "quadtree", 9 | "tree_levels": 20, 10 | "distance_error_pct": 0.025 11 | }, 12 | "date": { 13 | "type": "date" 14 | }, 15 | "location": { 16 | "type": "geo_point" 17 | }, 18 | "name": { 19 | "type": "keyword" 20 | }, 21 | "phone_list": { 22 | "type": "keyword" 23 | }, 24 | "phone_set": { 25 | "type": "keyword" 26 | }, 27 | "text": { 28 | "type": "text" 29 | }, 30 | "time": { 31 | "type": "long" 32 | } 33 | }, 34 | "dynamic_templates": [ 35 | { 36 | "custom_all_field": { 37 | "match":"phone*", 38 | "mapping": { 39 | "type": "{dynamic_type}", 40 | "copy_to": "text" 41 | } 42 | } 43 | } 44 | ] 45 | } 46 | } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "test_mapping": { 4 | "properties": { 5 | "boundary": { 6 | "type": "geo_shape", 7 | "tree": "quadtree", 8 | "tree_levels": 20, 9 | "distance_error_pct": 0.025 10 | }, 11 | "date": { 12 | "type": "date" 13 | }, 14 | "location": { 15 | "type": "geo_point" 16 | }, 17 | "name": { 18 | "type": "keyword" 19 | }, 20 | "phone_list": { 21 | "type": "keyword" 22 | }, 23 | "phone_set": { 24 | "type": "keyword" 25 | }, 26 | "text": { 27 | "type": "text" 28 | }, 29 | "time": { 30 | "type": "long" 31 | } 32 | } 33 | } 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/strict_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "test_mapping": { 4 | "dynamic": "strict", 5 | "date_detection": false, 6 | "properties": { 7 | "boundary": { 8 | "type": "geo_shape", 9 | "tree": "quadtree", 10 | "tree_levels": 20, 11 | "distance_error_pct": 0.025 12 | }, 13 | "date": { 14 | "type": "date" 15 | }, 16 | "location": { 17 | "type": "geo_point" 18 | }, 19 | "name": { 20 | "type": "keyword" 21 | }, 22 | "phone_list": { 23 | "type": "keyword" 24 | }, 25 | "phone_set": { 26 | "type": "keyword" 27 | }, 28 | "text": { 29 | "type": "text" 30 | }, 31 | "time": { 32 | "type": "long" 33 | } 34 | } 35 | } 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/typeless_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "boundary": { 5 | "type": "geo_shape", 6 | "tree": "quadtree", 7 | "tree_levels": 20, 8 | "distance_error_pct": 0.025 9 | }, 10 | "date": { 11 | "type": "date" 12 | }, 13 | "location": { 14 | "type": "geo_point" 15 | }, 16 | "name": { 17 | "type": "keyword" 18 | }, 19 | "phone_list": { 20 | "type": "keyword" 21 | }, 22 | "phone_set": { 23 | "type": "keyword" 24 | }, 25 | "text": { 26 | "type": "text" 27 | }, 28 | "time": { 29 | "type": "long" 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /janusgraph-es/src/test/resources/typeless_strict_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "dynamic": "strict", 4 | "date_detection": false, 5 | "properties": { 6 | "boundary": { 7 | "type": "geo_shape", 8 | "tree": "quadtree", 9 | "tree_levels": 20, 10 | "distance_error_pct": 0.025 11 | }, 12 | "date": { 13 | "type": "date" 14 | }, 15 | "location": { 16 | "type": "geo_point" 17 | }, 18 | "name": { 19 | "type": "keyword" 20 | }, 21 | "phone_list": { 22 | "type": "keyword" 23 | }, 24 | "phone_set": { 25 | "type": "keyword" 26 | }, 27 | "text": { 28 | "type": "text" 29 | }, 30 | "time": { 31 | "type": "long" 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /janusgraph-examples/example-berkeleyje/.gitignore: -------------------------------------------------------------------------------- 1 | jgex/ 2 | -------------------------------------------------------------------------------- /janusgraph-examples/example-berkeleyje/conf/jgex-berkeleyje.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=berkeleyje 18 | storage.directory=jgex/berkeleyje 19 | 20 | index.jgex.backend=lucene 21 | index.jgex.directory=jgex/lucene 22 | -------------------------------------------------------------------------------- /janusgraph-examples/example-common/conf/jgex-inmemory.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=inmemory 18 | -------------------------------------------------------------------------------- /janusgraph-examples/example-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | org.janusgraph 5 | janusgraph-examples 6 | 1.2.0-SNAPSHOT 7 | ../pom.xml 8 | 9 | example-common 10 | Example-Common: Common Graph Code for Examples 11 | https://janusgraph.org 12 | 13 | 14 | 15 | org.janusgraph 16 | janusgraph-core 17 | ${project.version} 18 | 19 | 20 | 21 | 22 | org.janusgraph.example.JanusGraphApp 23 | ${project.basedir}/conf/jgex-inmemory.properties 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /janusgraph-examples/example-common/src/test/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /janusgraph-examples/example-cql/conf/jgex-cql.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=cql 18 | storage.cql.keyspace=jgex 19 | storage.hostname=127.0.0.1 20 | 21 | index.jgex.backend=elasticsearch 22 | index.jgex.index-name=jgex 23 | index.jgex.hostname=127.0.0.1 24 | -------------------------------------------------------------------------------- /janusgraph-examples/example-cql/conf/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | %d{HH:mm:ss} %-5level %logger - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /janusgraph-examples/example-hbase/conf/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | %d{HH:mm:ss} %-5level %logger - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /janusgraph-examples/example-remotegraph/conf/jgex-remote.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection 16 | # cluster file has the remote server configuration 17 | gremlin.remote.driver.clusterFile=example-remotegraph/conf/remote-objects.yaml 18 | # source name is the global graph traversal source defined on the server 19 | gremlin.remote.driver.sourceName=g 20 | -------------------------------------------------------------------------------- /janusgraph-examples/example-remotegraph/conf/remote-objects.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | hosts: [127.0.0.1] 16 | port: 8182 17 | serializer: { 18 | className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, 19 | config: { 20 | ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-examples/example-tinkergraph/conf/jgex-tinkergraph.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph 16 | 17 | # DefaultIdManager types: INTEGER, LONG, UUID, ANY 18 | gremlin.tinkergraph.edgeIdManager=INTEGER 19 | gremlin.tinkergraph.vertexIdManager=INTEGER 20 | gremlin.tinkergraph.vertexPropertyIdManager=INTEGER 21 | -------------------------------------------------------------------------------- /janusgraph-examples/example-tinkergraph/src/test/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /janusgraph-grpc/README.md: -------------------------------------------------------------------------------- 1 | # JanusGraph gRPC 2 | 3 | ## General 4 | 5 | ### Done 6 | 7 | * Get all existing Graphs 8 | 9 | ## ToDo 10 | 11 | * Create new graphs 12 | * Get config of a graph 13 | * Update config of a graph, if graph is configure via CFG 14 | * Documentation how to use the grpc server and client 15 | 16 | ## Schema Management 17 | 18 | ### Done 19 | 20 | * Get vertex by name 21 | * Get multiple vertices 22 | * Get edge by name 23 | * Get multiple edges 24 | 25 | # ToDo 26 | 27 | * Add support for ttl 28 | * Create/Update/Delete a vertex 29 | * Create/Update/Delete a edge 30 | * Connect/Disconnect a edge with vertices 31 | * Index Management 32 | * Properties Management 33 | * Test against multi node clusters(multiple instances of JG) 34 | -------------------------------------------------------------------------------- /janusgraph-grpc/buf.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # See https://docs.buf.build/lint-usage 16 | # See https://docs.buf.build/breaking-usage 17 | version: v1beta1 18 | lint: 19 | use: 20 | - BASIC 21 | - FILE_LOWER_SNAKE_CASE 22 | - ENUM_NO_ALLOW_ALIAS 23 | - IMPORT_NO_PUBLIC 24 | - PACKAGE_DIRECTORY_MATCH 25 | - PACKAGE_SAME_DIRECTORY 26 | - PACKAGE_AFFINITY -------------------------------------------------------------------------------- /janusgraph-grpc/src/main/proto/janusgraph/types/v1/graph_types.proto: -------------------------------------------------------------------------------- 1 | // Copyright 2021 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | syntax = "proto3"; 16 | 17 | package janusgraph.types.v1; 18 | 19 | option java_multiple_files = true; 20 | option java_package = "org.janusgraph.graphdb.grpc.types"; 21 | 22 | message JanusGraphContext { 23 | string graph_name = 1; 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-hadoop/.gitignore: -------------------------------------------------------------------------------- 1 | /*/jobs/ 2 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/assembly/code-jar.xml: -------------------------------------------------------------------------------- 1 | 2 | ${project.artifactId} 3 | / 4 | 5 | 6 | jar 7 | 8 | 9 | 10 | 11 | false 12 | true 13 | 14 | 15 | META-INF/** 16 | 17 | 18 | 19 | ${project.groupId}:${project.artifactId}-*:jar:${project.version} 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/assembly/javadoc-jar.xml: -------------------------------------------------------------------------------- 1 | 2 | javadoc 3 | / 4 | 5 | 6 | jar 7 | 8 | 9 | 10 | 11 | false 12 | true 13 | 14 | 15 | META-INF/** 16 | 17 | 18 | 19 | ${project.groupId}:${project.artifactId}-*:jar:javadoc:${project.version} 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/assembly/shared-resources.xml: -------------------------------------------------------------------------------- 1 | 2 | shared-resources 3 | 4 | jar 5 | 6 | false 7 | 8 | 9 | / 10 | ${project.basedir}/src/assembly/shared-resources 11 | false 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/assembly/shared-resources/hadoop-job.xml: -------------------------------------------------------------------------------- 1 | 2 | job 3 | 4 | jar 5 | 6 | false 7 | 8 | 9 | false 10 | runtime 11 | lib 12 | 13 | ${groupId}:${artifactId} 14 | 15 | 16 | 17 | true 18 | 19 | ${groupId}:${artifactId} 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/assembly/sources-jar.xml: -------------------------------------------------------------------------------- 1 | 2 | sources 3 | / 4 | 5 | 6 | jar 7 | 8 | 9 | 10 | 11 | false 12 | true 13 | 14 | 15 | META-INF/** 16 | 17 | 18 | 19 | ${project.groupId}:${project.artifactId}-*:jar:sources:${project.version} 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/main/java/org/janusgraph/hadoop/HadoopStoreManager.java: -------------------------------------------------------------------------------- 1 | // Copyright 2020 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop; 16 | 17 | import org.apache.hadoop.conf.Configuration; 18 | import org.apache.hadoop.mapreduce.InputFormat; 19 | 20 | public interface HadoopStoreManager { 21 | Class getInputFormat(Configuration hadoopConf); 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/main/java/org/janusgraph/hadoop/config/job/JobClasspathConfigurer.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.config.job; 16 | 17 | import org.apache.hadoop.mapreduce.Job; 18 | 19 | import java.io.IOException; 20 | 21 | /** 22 | * Configures a Job a map reduce jar and/or additional classpath elements hosted 23 | * in the Hadoop DistributedCache. 24 | */ 25 | public interface JobClasspathConfigurer { 26 | 27 | void configure(Job job) throws IOException; 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/main/java/org/janusgraph/hadoop/formats/JobConfigurationFormat.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats; 16 | 17 | import org.apache.hadoop.mapreduce.Job; 18 | 19 | import java.io.IOException; 20 | 21 | /** 22 | * If an Input- or OutputFormat requires a dynamic configuration of the job at execution time, then a JobConfigurationFormat can be implemented. 23 | * 24 | * @author Marko A. Rodriguez (https://markorodriguez.com) 25 | */ 26 | public interface JobConfigurationFormat { 27 | 28 | void updateJob(Job job) throws InterruptedException, IOException; 29 | } 30 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/main/java/org/janusgraph/hadoop/formats/util/input/SystemTypeInspector.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats.util.input; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public interface SystemTypeInspector { 21 | 22 | boolean isSystemType(long typeId); 23 | 24 | boolean isVertexExistsSystemType(long typeId); 25 | 26 | boolean isVertexLabelSystemType(long typeId); 27 | 28 | boolean isTypeSystemType(long typeId); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/main/java/org/janusgraph/hadoop/formats/util/input/VertexReader.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats.util.input; 16 | 17 | import org.janusgraph.diskstorage.StaticBuffer; 18 | 19 | /** 20 | * @author Matthias Broecheler (me@matthiasb.com) 21 | */ 22 | public interface VertexReader { 23 | 24 | long getVertexId(StaticBuffer key); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/META-INF/services/org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShimService: -------------------------------------------------------------------------------- 1 | org.janusgraph.hadoop.serialize.JanusGraphKryoShimService 2 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/formats/graphson/extra-cerberus.json: -------------------------------------------------------------------------------- 1 | {"name":"cerberus","type":"monster","heads":3,"_id":11} 2 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/formats/graphson/graph-example-1.json: -------------------------------------------------------------------------------- 1 | {"name":"marko","age":29,"_id":1,"_outE":[{"weight":0.5,"_label":"knows","_id":7,"_inV":2},{"weight":1,"_label":"knows","_id":8,"_inV":4},{"weight":0.4,"_label":"created","_id":9,"_inV":3}]} 2 | {"name":"vadas","age":27,"_id":2,"_inE":[{"weight":0.5,"_label":"knows","_id":7,"_outV":1}]} 3 | {"name":"lop","lang":"java","_id":3,"_inE":[{"weight":0.4,"_label":"created","_id":9,"_outV":1},{"weight":0.4,"_label":"created","_id":11,"_outV":4},{"weight":0.2,"_label":"created","_id":12,"_outV":6}]} 4 | {"name":"josh","age":32,"_id":4,"_outE":[{"weight":1,"_label":"created","_id":10,"_inV":5},{"weight":0.4,"_label":"created","_id":11,"_inV":3}],"_inE":[{"weight":1,"_label":"knows","_id":8,"_outV":1}]} 5 | {"name":"ripple","lang":"java","_id":5,"_inE":[{"weight":1,"_label":"created","_id":10,"_outV":4}]} 6 | {"name":"peter","age":35,"_id":6,"_outE":[{"weight":0.2,"_label":"created","_id":12,"_inV":3}]} 7 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/formats/script/ScriptInput.groovy: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | 16 | import com.tinkerpop.blueprints.Direction 17 | import org.janusgraph.hadoop.FaunusVertex 18 | 19 | boolean read(FaunusVertex v, String line) { 20 | parts = line.split(':') 21 | v.setId(Long.valueOf(parts[0])) 22 | if (parts.length == 2) { 23 | parts[1].split(',').each { 24 | v.addEdge(Direction.OUT, 'linkedTo', Long.valueOf(it)) 25 | } 26 | } 27 | return true 28 | } 29 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/formats/script/graph-of-the-gods.id: -------------------------------------------------------------------------------- 1 | 0: 2 | 1:4,3,2,0 3 | 2:5,3,1 4 | 3:11,6,1,2 5 | 4: 6 | 5: 7 | 6: 8 | 7:8,9,10,11,1 9 | 8: 10 | 9: 11 | 10: 12 | 11:6 13 | -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/graph-of-the-gods-2.seq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/graph-of-the-gods-2.seq -------------------------------------------------------------------------------- /janusgraph-hadoop/src/test/resources/org/janusgraph/hadoop/tinkerpop/gremlin/Script.groovy: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | println hdfs.toString() 16 | println local.toString() 17 | println a1 + a2 + a3 18 | -------------------------------------------------------------------------------- /janusgraph-hbase/docker/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright 2022 JanusGraph Authors 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # re export zookeeper 18 | socat tcp-listen:2182,fork,reuseaddr tcp-connect:localhost:2181 & 19 | 20 | /usr/bin/hbase master start -------------------------------------------------------------------------------- /janusgraph-hbase/docker/hbase-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | hbase.zookeeper.quorum 6 | localhost 7 | 8 | 9 | hbase.rootdir 10 | file:////data/hbase 11 | 12 | 13 | hbase.cluster.distributed 14 | false 15 | 16 | 17 | hbase.wal.dir 18 | file:////data/wal 19 | 20 | 21 | hbase.unsafe.stream.capability.enforce 22 | false 23 | 24 | 25 | 26 | hbase.master.info.bindAddress 27 | 0.0.0.0 28 | 29 | 30 | 31 | hbase.regionserver.info.bindAddress 32 | 0.0.0.0 33 | 34 | 35 | 36 | hbase.master.ipc.address 37 | 0.0.0.0 38 | 39 | 40 | 41 | hbase.regionserver.ipc.address 42 | 0.0.0.0 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /janusgraph-hbase/src/main/java/org/janusgraph/hadoop/HBaseHadoopStoreManager.java: -------------------------------------------------------------------------------- 1 | // Copyright 2020 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop; 16 | 17 | import org.apache.hadoop.conf.Configuration; 18 | import org.apache.hadoop.mapreduce.InputFormat; 19 | import org.janusgraph.hadoop.formats.hbase.HBaseBinaryInputFormat; 20 | 21 | public class HBaseHadoopStoreManager implements HadoopStoreManager { 22 | @Override 23 | public Class getInputFormat(Configuration hadoopConf) { 24 | return HBaseBinaryInputFormat.class; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /janusgraph-hbase/src/main/java/org/janusgraph/hadoop/formats/hbase/HBaseInputFormat.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats.hbase; 16 | 17 | import org.janusgraph.hadoop.formats.util.HadoopInputFormat; 18 | 19 | public class HBaseInputFormat extends HadoopInputFormat { 20 | public HBaseInputFormat() { 21 | super(new HBaseBinaryInputFormat()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-hbase/src/main/java/org/janusgraph/hadoop/formats/hbase/HBaseSnapshotInputFormat.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.hadoop.formats.hbase; 16 | 17 | import org.janusgraph.hadoop.formats.util.HadoopInputFormat; 18 | 19 | public class HBaseSnapshotInputFormat extends HadoopInputFormat { 20 | public HBaseSnapshotInputFormat() { 21 | super(new HBaseSnapshotBinaryInputFormat()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-hbase/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-inmemory/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-lucene/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-mixed-index-utils/src/main/java/org/janusgraph/diskstorage/mixed/utils/processor/CircleProcessor.java: -------------------------------------------------------------------------------- 1 | // Copyright 2023 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.mixed.utils.processor; 16 | 17 | import org.janusgraph.core.attribute.Geoshape; 18 | 19 | public interface CircleProcessor { 20 | 21 | Geoshape process(Geoshape circle); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/java/org/janusgraph/graphdb/tinkerpop/gremlin/server/auth/MockedJanusGraphAuthenticatorFactory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2019 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.tinkerpop.gremlin.server.auth; 16 | 17 | import org.janusgraph.core.JanusGraph; 18 | 19 | import java.util.Map; 20 | 21 | public interface MockedJanusGraphAuthenticatorFactory { 22 | JanusGraphAbstractAuthenticator createInitializedAuthenticator(final Map config, 23 | final JanusGraph graph); 24 | } 25 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/conf/janusgraph-inmemory-custom-id.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=inmemory 18 | 19 | graph.set-vertex-id=true 20 | 21 | graph.allow-custom-vid-types=true 22 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/conf/janusgraph-inmemory.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=inmemory 18 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/conf/janusgraph-server-integration.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | storage.backend=inmemory 16 | graph.graphname=ConfigurationManagementGraph 17 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/invalid-config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | field: unknown 17 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/janusgraph-inmemory.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2020 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | gremlin.graph=org.janusgraph.core.JanusGraphFactory 16 | 17 | storage.backend=inmemory 18 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-server/src/test/resources/tinkergraph.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph 19 | gremlin.tinkergraph.vertexIdManager=LONG 20 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/java/org/janusgraph/diskstorage/solr/SolrTestCategory.java: -------------------------------------------------------------------------------- 1 | // Copyright 2020 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.diskstorage.solr; 16 | 17 | public final class SolrTestCategory { 18 | public static final String KERBEROS_TESTS = "KERBEROS_TESTS"; 19 | } 20 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/collections.txt: -------------------------------------------------------------------------------- 1 | store1 store2 vertex edge namev namee composite psearch esearch vsearch mi mixed index1 index2 index3 ecategory vcategory pcategory theIndex vertices edges booleanIndex dateIndex instantIndex uuidIndex randomMixedIndex collectionIndex nameidx oridx otheridx lengthidx 2 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/import-collections.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright 2019 JanusGraph Authors 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License 15 | 16 | set -x 17 | 18 | until $(curl --output /dev/null --silent --head --fail http://172.17.0.1:8983); do sleep 5; done 19 | for core in $(cat /tmp/collections.txt); do /opt/solr/server/scripts/cloud-scripts/zkcli.sh -zkhost 172.17.0.1:9983 -cmd upconfig -confdir mydata -confname $core; done 20 | 21 | echo "All collections imported" 22 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/solr/core-template/protwords.txt: -------------------------------------------------------------------------------- 1 | # The ASF licenses this file to You under the Apache License, Version 2.0 2 | # (the "License"); you may not use this file except in compliance with 3 | # the License. You may obtain a copy of the License at 4 | # 5 | # http://www.apache.org/licenses/LICENSE-2.0 6 | # 7 | # Unless required by applicable law or agreed to in writing, software 8 | # distributed under the License is distributed on an "AS IS" BASIS, 9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | # See the License for the specific language governing permissions and 11 | # limitations under the License. 12 | 13 | #----------------------------------------------------------------------- 14 | # Use a protected word file to protect against the stemmer reducing two 15 | # unrelated words to the same base word. 16 | 17 | # Some non-words that normally won't be encountered, 18 | # just to test that they won't be stemmed. 19 | dontstems 20 | zwhacky 21 | 22 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/solr/core-template/stopwords.txt: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /janusgraph-solr/src/test/resources/solr/jaas_keytab.conf: -------------------------------------------------------------------------------- 1 | Client { 2 | com.sun.security.auth.module.Krb5LoginModule required 3 | useKeyTab=true 4 | keyTab="target/kerberos_test_data/bob.user.keytab" 5 | storeKey=true 6 | doNotPrompt=true 7 | principal="bob@TEST.COM"; 8 | }; 9 | 10 | Server { 11 | com.sun.security.auth.module.Krb5LoginModule required 12 | useKeyTab=true 13 | storeKey=true 14 | useTicketCache=false 15 | keyTab="target/kerberos_test_data/zk.service.keytab" 16 | principal="zookeeper/127.0.0.1@TEST.COM"; 17 | }; -------------------------------------------------------------------------------- /janusgraph-test/src/test/java/org/janusgraph/graphdb/serializer/attributes/TEnum.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.serializer.attributes; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | public enum TEnum { 21 | 22 | ONE, TWO, THREE { 23 | @Override 24 | public String toString() { 25 | return "three"; 26 | } 27 | }, FOUR; 28 | 29 | 30 | @Override 31 | public String toString() { 32 | return super.toString().toLowerCase(); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /janusgraph-test/src/test/java/org/janusgraph/graphdb/util/IntSet.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.graphdb.util; 16 | 17 | 18 | public interface IntSet { 19 | 20 | boolean add(int value); 21 | 22 | boolean addAll(int[] values); 23 | 24 | boolean contains(int value); 25 | 26 | int[] getAll(); 27 | 28 | int size(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /janusgraph-test/src/test/java/org/janusgraph/util/interval/IntervalTest.java: -------------------------------------------------------------------------------- 1 | // Copyright 2017 JanusGraph Authors 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package org.janusgraph.util.interval; 16 | 17 | /** 18 | * @author Matthias Broecheler (me@matthiasb.com) 19 | */ 20 | 21 | public class IntervalTest { 22 | } 23 | -------------------------------------------------------------------------------- /janusgraph-test/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss} %-5level %class.%method{36} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /janusgraph-test/src/test/resources/org/janusgraph/core/janusgraph-testing.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2019 JanusGraph Authors 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | storage.backend=inmemory 16 | graph.graphname=testgraph 17 | -------------------------------------------------------------------------------- /janusgraph-test/src/test/resources/rexster-fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | home 5 | 6 | local 7 | 8 | 9 | 10 | tp:gremlin 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /janusgraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JanusGraph/janusgraph/02c1bcbf07381738224b5e1b8e65427c276e49bd/janusgraph.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | mkdocs==1.5.3 2 | mkdocs-material==9.4.8 3 | Pygments==2.16.1 4 | pymdown-extensions==10.4 5 | markdown==3.5.1 6 | mkdocs-include-markdown-plugin==6.0.2 7 | mkdocs-redirects==1.2.1 8 | jinja2==3.1.4 9 | mkdocs-macros-plugin==1.0.4 --------------------------------------------------------------------------------