Skip to content

Commit 4f0a9e1

Browse files
authored
satellite graphs (#337)
1 parent 0b4f404 commit 4f0a9e1

File tree

3 files changed

+53
-7
lines changed

3 files changed

+53
-7
lines changed

src/main/java/com/arangodb/entity/GraphEntity.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class GraphEntity implements Entity {
3838
private Boolean isSmart;
3939
private Integer numberOfShards;
4040
private String smartGraphAttribute;
41-
private Integer replicationFactor;
41+
private ReplicationFactor replicationFactor;
4242
private Integer minReplicationFactor;
4343

4444
public String getName() {
@@ -62,7 +62,11 @@ public Integer getNumberOfShards() {
6262
}
6363

6464
public Integer getReplicationFactor() {
65-
return replicationFactor;
65+
return replicationFactor.getReplicationFactor();
66+
}
67+
68+
public Boolean getSatellite() {
69+
return this.replicationFactor.getSatellite();
6670
}
6771

6872
public Integer getMinReplicationFactor() {

src/main/java/com/arangodb/model/GraphCreateOptions.java

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package com.arangodb.model;
2222

2323
import com.arangodb.entity.EdgeDefinition;
24+
import com.arangodb.entity.ReplicationFactor;
2425

2526
import java.util.Arrays;
2627
import java.util.Collection;
@@ -94,7 +95,7 @@ public GraphCreateOptions isSmart(final Boolean isSmart) {
9495
}
9596

9697
public Integer getReplicationFactor() {
97-
return getOptions().getReplicationFactor();
98+
return getOptions().replicationFactor.getReplicationFactor();
9899
}
99100

100101
/**
@@ -108,7 +109,22 @@ public Integer getReplicationFactor() {
108109
* @return options
109110
*/
110111
public GraphCreateOptions replicationFactor(final Integer replicationFactor) {
111-
getOptions().setReplicationFactor(replicationFactor);
112+
getOptions().replicationFactor.setReplicationFactor(replicationFactor);
113+
return this;
114+
}
115+
116+
public Boolean getSatellite() {
117+
return getOptions().replicationFactor.getSatellite();
118+
}
119+
120+
/**
121+
* @param satellite If the true the graph is created as a satellite graph. In this case
122+
* {@link #replicationFactor(Integer)} is ignored.
123+
* @return options
124+
* @since ArangoDB 3.7
125+
*/
126+
public GraphCreateOptions satellite(final Boolean satellite) {
127+
getOptions().replicationFactor.setSatellite(satellite);
112128
return this;
113129
}
114130

@@ -167,21 +183,30 @@ private SmartOptions getOptions() {
167183
}
168184

169185
public static class SmartOptions {
170-
private Integer replicationFactor;
186+
private ReplicationFactor replicationFactor;
171187
private Integer minReplicationFactor;
172188
private Integer numberOfShards;
173189
private String smartGraphAttribute;
174190

175191
public SmartOptions() {
176192
super();
193+
replicationFactor = new ReplicationFactor();
177194
}
178195

179196
public Integer getReplicationFactor() {
180-
return replicationFactor;
197+
return replicationFactor.getReplicationFactor();
181198
}
182199

183200
public void setReplicationFactor(final Integer replicationFactor) {
184-
this.replicationFactor = replicationFactor;
201+
this.replicationFactor.setReplicationFactor(replicationFactor);
202+
}
203+
204+
public Boolean getSatellite() {
205+
return replicationFactor.getSatellite();
206+
}
207+
208+
public void setSatellite(final Boolean satellite) {
209+
replicationFactor.setSatellite(satellite);
185210
}
186211

187212
public Integer getMinReplicationFactor() {

src/test/java/com/arangodb/ArangoDatabaseTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -973,6 +973,23 @@ public void createGraph() {
973973
assertThat(result.getName(), is(name));
974974
}
975975

976+
@Test
977+
public void createGraphSatellite() {
978+
assumeTrue(isAtLeastVersion(3, 7));
979+
assumeTrue(isCluster());
980+
assumeTrue(isEnterprise());
981+
982+
String name = "graph-" + rnd();
983+
final GraphEntity result = db.createGraph(name, null, new GraphCreateOptions().satellite(true));
984+
assertThat(result.getSatellite(), is(true));
985+
986+
GraphEntity info = db.graph(name).getInfo();
987+
assertThat(info.getSatellite(), is(true));
988+
989+
GraphEntity graph = db.getGraphs().stream().filter(g -> name.equals(g.getName())).findFirst().get();
990+
assertThat(graph.getSatellite(), is(true));
991+
}
992+
976993
@Test
977994
public void createGraphReplicationFaktor() {
978995
assumeTrue(isCluster());

0 commit comments

Comments
 (0)