Skip to content

Commit c86ef8e

Browse files
committed
issues/1968: Custom GraphDatabaseConfiguration implementation
1 parent e08b500 commit c86ef8e

File tree

3 files changed

+58
-6
lines changed

3 files changed

+58
-6
lines changed

strongbox-db-server/src/main/java/org/strongbox/db/server/JanusGraphServer.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,17 @@
77
import javax.annotation.PostConstruct;
88
import javax.annotation.PreDestroy;
99

10-
import org.apache.commons.configuration.Configuration;
1110
import org.apache.commons.configuration.ConfigurationException;
1211
import org.apache.commons.configuration.PropertiesConfiguration;
1312
import org.janusgraph.core.JanusGraph;
14-
import org.janusgraph.core.JanusGraphFactory;
13+
import org.janusgraph.diskstorage.configuration.ReadConfiguration;
1514
import org.janusgraph.diskstorage.configuration.backend.CommonsConfiguration;
15+
import org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration;
16+
import org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder;
1617
import org.janusgraph.graphdb.database.StandardJanusGraph;
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
20+
import org.strongbox.db.server.janusgraph.CustomGraphDatabaseConfiguration;
1921

2022
/**
2123
* @author sbespalov
@@ -84,16 +86,18 @@ protected JanusGraph buildJanusGraph(JanusGraphConfiguration configuration)
8486
try
8587
{
8688
URL configLocationUrl = new URL(configLocation);
87-
Configuration jgConfiguration = new PropertiesConfiguration(configLocationUrl);
88-
89-
return JanusGraphFactory.open(new CommonsConfiguration(jgConfiguration));
89+
ReadConfiguration janusGraphLocalConfig = new CommonsConfiguration(new PropertiesConfiguration(configLocationUrl));
90+
GraphDatabaseConfigurationBuilder configBuilder = new GraphDatabaseConfigurationBuilder();
91+
GraphDatabaseConfiguration janusGraphDbConfig = configBuilder.build(janusGraphLocalConfig);
92+
93+
return new StandardJanusGraph(new CustomGraphDatabaseConfiguration(janusGraphDbConfig));
9094
}
9195
catch (MalformedURLException|ConfigurationException e)
9296
{
9397
throw new RuntimeException(String.format("Invalid configuration [%s].", configLocation), e);
9498
}
9599
}
96-
100+
97101
@PreDestroy
98102
@Override
99103
public synchronized void stop()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.strongbox.db.server.janusgraph;
2+
3+
import org.janusgraph.diskstorage.Backend;
4+
import org.janusgraph.diskstorage.configuration.ModifiableConfiguration;
5+
import org.janusgraph.diskstorage.configuration.ReadConfiguration;
6+
import org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration;
7+
import org.janusgraph.graphdb.database.idassigner.VertexIDAssigner;
8+
9+
/**
10+
* @author sbespalov
11+
*/
12+
public class CustomGraphDatabaseConfiguration extends GraphDatabaseConfiguration
13+
{
14+
15+
public CustomGraphDatabaseConfiguration(GraphDatabaseConfiguration target)
16+
{
17+
super((ReadConfiguration) target.getConfigurationAtOpen(), (ModifiableConfiguration) target.getLocalConfiguration(),
18+
target.getUniqueGraphId(), target.getConfiguration());
19+
}
20+
21+
@Override
22+
public VertexIDAssigner getIDAssigner(Backend backend)
23+
{
24+
return new TransactionalVertexIDAssigner(getConfiguration(), backend.getIDAuthority(), backend.getStoreFeatures());
25+
}
26+
27+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.strongbox.db.server.janusgraph;
2+
3+
import org.janusgraph.diskstorage.IDAuthority;
4+
import org.janusgraph.diskstorage.configuration.Configuration;
5+
import org.janusgraph.diskstorage.keycolumnvalue.StoreFeatures;
6+
import org.janusgraph.graphdb.database.idassigner.VertexIDAssigner;
7+
8+
/**
9+
* @author sbespalov
10+
*/
11+
public class TransactionalVertexIDAssigner extends VertexIDAssigner
12+
{
13+
14+
public TransactionalVertexIDAssigner(Configuration config,
15+
IDAuthority idAuthority,
16+
StoreFeatures idAuthFeatures)
17+
{
18+
super(config, idAuthority, idAuthFeatures);
19+
}
20+
21+
}

0 commit comments

Comments
 (0)