assumeThat(graph.features().supports(Graph.Features.VariableFeatures.class, featureName), is(true)); final Graph.Variables variables = graph.variables(); variables.set("aKey", value); final Map map = variables.<Map>get("aKey").get(); assertEquals(((Map) value).size(), map.size()); ((Map) value).keySet().forEach(k -> assertEquals(((Map) value).get(k), map.get(k))); else if (value instanceof List) tryCommit(graph, graph -> { final List l = variables.<List>get("aKey").get(); assertEquals(((List) value).size(), l.size()); for (int ix = 0; ix < ((List) value).size(); ix++) { else if (value instanceof MockSerializable) tryCommit(graph, graph -> { final MockSerializable mock = variables.<MockSerializable>get("aKey").get(); assertEquals(((MockSerializable) value).getTestField(), mock.getTestField()); }); else if (value instanceof boolean[]) tryCommit(graph, graph -> { final boolean[] l = variables.<boolean[]>get("aKey").get(); assertEquals(((boolean[]) value).length, l.length); for (int ix = 0; ix < ((boolean[]) value).length; ix++) { else if (value instanceof double[]) tryCommit(graph, graph -> { final double[] l = variables.<double[]>get("aKey").get(); assertEquals(((double[]) value).length, l.length);
@DELETE @Timed @Path("{key}") @Consumes(APPLICATION_JSON) public void delete(@Context GraphManager manager, @PathParam("graph") String graph, @PathParam("key") String key) { LOG.debug("Graph [{}] remove variable by key '{}'", graph, key); HugeGraph g = graph(manager, graph); commit(g, () -> g.variables().remove(key)); }
public static String graphVariablesString(final Graph.Variables variables) { return "variables" + L_BRACKET + "size:" + variables.keys().size() + R_BRACKET; }
assumeThat(graph.features().supports(Graph.Features.VariableFeatures.class, featureName), is(true)); final Graph.Variables variables = graph.variables(); variables.set("aKey", value); final Map map = variables.<Map>get("aKey").get(); assertEquals(((Map) value).size(), map.size()); ((Map) value).keySet().forEach(k -> assertEquals(((Map) value).get(k), map.get(k))); else if (value instanceof List) tryCommit(graph, graph -> { final List l = variables.<List>get("aKey").get(); assertEquals(((List) value).size(), l.size()); for (int ix = 0; ix < ((List) value).size(); ix++) { else if (value instanceof MockSerializable) tryCommit(graph, graph -> { final MockSerializable mock = variables.<MockSerializable>get("aKey").get(); assertEquals(((MockSerializable) value).getTestField(), mock.getTestField()); }); else if (value instanceof boolean[]) tryCommit(graph, graph -> { final boolean[] l = variables.<boolean[]>get("aKey").get(); assertEquals(((boolean[]) value).length, l.length); for (int ix = 0; ix < ((boolean[]) value).length; ix++) { else if (value instanceof double[]) tryCommit(graph, graph -> { final double[] l = variables.<double[]>get("aKey").get(); assertEquals(((double[]) value).length, l.length);
private void ensureGraphFormatIsCompatible() { ChronoGraph txGraph = this.graph.tx().createThreadedTx(); String formatVersionString = (String) txGraph.variables().get(ChronoSphereGraphFormat.VARIABLES__GRAPH_FORMAT_VERSION).orElse(null); ChronosVersion currentVersion = ChronosVersion.getCurrentVersion(); if (formatVersionString == null) { if (isEmpty && this.graph.getBranchManager().getBranchNames().equals(Collections.singleton(ChronoDBConstants.MASTER_BRANCH_IDENTIFIER))) { txGraph.variables().set(ChronoSphereGraphFormat.VARIABLES__GRAPH_FORMAT_VERSION, currentVersion.toString()); txGraph.tx().commit("ChronoSphere Graph Format version update to " + currentVersion); return; } else if (formatVersion.isSmallerThan(currentVersion)) { txGraph.variables().set(ChronoSphereGraphFormat.VARIABLES__GRAPH_FORMAT_VERSION, currentVersion.toString()); txGraph.tx().commit("ChronoSphere Graph Format version update from " + formatVersion + " to " + currentVersion); return;
@Test public void canMergeConflictingGraphVariables() { ChronoGraph g = this.getGraph(); { // initial commit g.variables().set("hello", "world"); g.variables().set("foo", "bar"); g.tx().commit(); } ChronoGraph g1 = g.tx().createThreadedTx(); ChronoGraph g2 = g.tx().createThreadedTx(); g1.variables().set("hello", "john"); g1.variables().remove("foo"); g1.variables().set("john", "doe"); g1.tx().commit(); g2.variables().set("hello", "jack"); g2.variables().set("foo", "baz"); g2.variables().set("jane", "doe"); g2.tx().commit(); assertThat(g.variables().get("hello").orElse(null), is("jack")); assertThat(g.variables().get("foo").orElse(null), is("baz")); assertThat(g.variables().get("john").orElse(null), is("doe")); assertThat(g.variables().get("jane").orElse(null), is("doe")); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_INTEGER_VALUES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_LONG_VALUES) public void shouldHoldVariableMixed() { final Graph.Variables variables = graph.variables(); variables.set("test1", "1"); variables.set("test2", 2); variables.set("test3", 3l); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals("1", m.get("test1")); assertEquals(2, m.get("test2")); assertEquals(3l, m.get("test3")); }); } }
public void setTinkerpopGraph(org.apache.tinkerpop.gremlin.structure.Graph tGraph) { this.tGraph = tGraph; LOGGER.debug("** Variables of the graph **"); try { for (String key : tGraph.variables().keys()) { LOGGER.info("key = " + key); } } catch (Exception ex) { LOGGER.error("Impossible to show graph variables. Cause: " + ex.toString()); } LOGGER.debug("****************************"); LOGGER.debug("** configuration **"); Configuration config = tGraph.configuration(); for (Iterator<String> c = config.getKeys(); c.hasNext();) { String key = c.next(); LOGGER.debug("{} {}", key, config.getString(key)); } LOGGER.debug("****************************"); }
/** * In this case, the feature requirement for sideEffects is checked, because it means that at least one aspect of * sideEffects is supported so we need to test other features to make sure they work properly. */ @Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) public void shouldEnableFeatureOnGraphIfNotEnabled() throws Exception { assumeThat(graph.features().supports(Graph.Features.VariableFeatures.class, featureName), is(false)); try { final Graph.Variables variables = graph.variables(); variables.set("aKey", value); fail(String.format(INVALID_FEATURE_SPECIFICATION, Graph.Features.VariableFeatures.class.getSimpleName(), featureName)); } catch (Exception e) { validateException(Graph.Variables.Exceptions.dataTypeOfVariableValueNotSupported(value), e); } } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_LONG_VALUES) public void shouldHoldVariableLong() { final Graph.Variables variables = graph.variables(); variables.set("test1", 1l); variables.set("test2", 2l); variables.set("test3", 3l); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals(1l, m.get("test1")); assertEquals(2l, m.get("test2")); assertEquals(3l, m.get("test3")); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void shouldHoldVariableString() { final Graph.Variables variables = graph.variables(); variables.set("test1", "1"); variables.set("test2", "2"); variables.set("test3", "3"); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals("1", m.get("test1")); assertEquals("2", m.get("test2")); assertEquals("3", m.get("test3")); }); }
public static String graphVariablesString(final Graph.Variables variables) { return "variables" + L_BRACKET + "size:" + variables.keys().size() + R_BRACKET; }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_INTEGER_VALUES) public void shouldHoldVariableInteger() { final Graph.Variables variables = graph.variables(); variables.set("test1", 1); variables.set("test2", 2); variables.set("test3", 3); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals(1, m.get("test1")); assertEquals(2, m.get("test2")); assertEquals(3, m.get("test3")); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void shouldHoldVariableNone() { final Graph.Variables variables = graph.variables(); final Map<String, Object> mapOfAnnotations = variables.asMap(); assertNotNull(mapOfAnnotations); assertEquals(0, mapOfAnnotations.size()); try { mapOfAnnotations.put("something", "can't do this"); fail("Should not be able to mutate the Map returned from Graph.variables.getAnnotations()"); } catch (UnsupportedOperationException ignored) { } }
private void loadDocumentContent(JCas jCas, Graph graph, Optional<Vertex> document) { if (document.isPresent()) { document.get().property(FIELD_CONTENT, coerce(jCas.getDocumentText())); } else { graph.variables().set(FIELD_CONTENT, jCas.getDocumentText()); } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = FEATURE_VARIABLES) public void testGraphVariablesSet() throws Exception { try { graph.variables().set(key, val); fail(String.format("Setting an annotation with these arguments [key: %s value: %s] should throw an exception", key, val)); } catch (Exception ex) { validateException(expectedException, ex); } } }
@Test public void testDocumentGraphCreatesMetadataFromJCas() throws UIMAException { DocumentGraphOptions options = DocumentGraphOptions.builder().withMeta(true).build(); DocumentGraphFactory factory = createfactory(options); JCas jCas = JCasFactory.createJCas(); JCasTestGraphUtil.populateJcas(jCas); Graph graph = factory.create(jCas); assertMetadata(jCas, graph.variables().asMap()); }