2016-02-04 3 views
0

Я пытаюсь создать один пример Titan Graph, но он дает ошибку.Метод makeType() не определен для типа TitanGraph

У меня pom.xml следующим образом:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion 
    <groupId>com.titanobwebservices.services</groupId> 
    <artifactId>titanob-services</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>titanob-services Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
     <dependency> 
      <groupId>com.thinkaurelius.titan</groupId> 
      <artifactId>titan-core</artifactId> 
      <version>0.4.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.thinkaurelius.titan</groupId> 
      <artifactId>titan-berkeleyje</artifactId> 
      <version>0.4.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.thinkaurelius.titan</groupId> 
      <artifactId>titan-es</artifactId> 
      <version>0.4.4</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>titanob-services</finalName> 
    </build> 
</project> 

GodOfGraphFactory.java следующим образом:

package com.titanos.webservices; 

import static com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.INDEX_BACKEND_KEY; 
import static com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.STORAGE_DIRECTORY_KEY; 

import java.io.File; 

import org.apache.commons.configuration.BaseConfiguration; 
import org.apache.commons.configuration.Configuration; 

import com.thinkaurelius.titan.core.TitanFactory; 
import com.thinkaurelius.titan.core.TitanGraph; 
import com.thinkaurelius.titan.core.TitanKey; 
import com.thinkaurelius.titan.core.attribute.Geoshape; 
import com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration; 
import com.tinkerpop.blueprints.Direction; 
import com.tinkerpop.blueprints.Edge; 
import com.tinkerpop.blueprints.Vertex; 
import com.tinkerpop.blueprints.util.ElementHelper; 

public class GraphOfTheGodsFactory { 

    public static final String INDEX_NAME = "search"; 


    public static TitanGraph create(final String directory) { 
     BaseConfiguration config = new BaseConfiguration(); 
     Configuration storage = config.subset(GraphDatabaseConfiguration.STORAGE_NAMESPACE); 
     // configuring local backend 
     storage.setProperty(GraphDatabaseConfiguration.STORAGE_BACKEND_KEY, "local"); 
     storage.setProperty(GraphDatabaseConfiguration.STORAGE_DIRECTORY_KEY, directory); 
     // configuring elastic search index 
     Configuration index = storage.subset(GraphDatabaseConfiguration.INDEX_NAMESPACE).subset(INDEX_NAME); 
     index.setProperty(INDEX_BACKEND_KEY, "elasticsearch"); 
     index.setProperty("local-mode", true); 
     index.setProperty("client-only", false); 
     index.setProperty(STORAGE_DIRECTORY_KEY, directory + File.separator + "es"); 

     TitanGraph graph = TitanFactory.open(config); 
     GraphOfTheGodsFactory.load(graph); 
     return graph; 
    } 

    public static void load(final TitanGraph graph) { 

     graph.makeType().name("name").dataType(String.class).indexed(Vertex.class).unique(Direction.BOTH).makePropertyKey(); 
     graph.makeType().name("age").dataType(Integer.class).indexed(INDEX_NAME, Vertex.class).unique(Direction.OUT).makePropertyKey(); 
     graph.makeType().name("type").dataType(String.class).unique(Direction.OUT).makePropertyKey(); 

     final TitanKey time = graph.makeType().name("time").dataType(Integer.class).unique(Direction.OUT).makePropertyKey(); 
     final TitanKey reason = graph.makeType().name("reason").dataType(String.class).indexed(INDEX_NAME, Edge.class).unique(Direction.OUT).makePropertyKey(); 
     graph.makeType().name("place").dataType(Geoshape.class).indexed(INDEX_NAME, Edge.class).unique(Direction.OUT).makePropertyKey(); 

     graph.makeType().name("father").unique(Direction.OUT).makeEdgeLabel(); 
     graph.makeType().name("mother").unique(Direction.OUT).makeEdgeLabel(); 
     graph.makeType().name("battled").primaryKey(time).makeEdgeLabel(); 
     graph.makeType().name("lives").signature(reason).makeEdgeLabel(); 
     graph.makeType().name("pet").makeEdgeLabel(); 
     graph.makeType().name("brother").makeEdgeLabel(); 

     graph.commit(); 

     // vertices 

     Vertex saturn = graph.addVertex(null); 
     saturn.setProperty("name", "saturn"); 
     saturn.setProperty("age", 10000); 
     saturn.setProperty("type", "titan"); 

     Vertex sky = graph.addVertex(null); 
     ElementHelper.setProperties(sky, "name", "sky", "type", "location"); 

     Vertex sea = graph.addVertex(null); 
     ElementHelper.setProperties(sea, "name", "sea", "type", "location"); 

     Vertex jupiter = graph.addVertex(null); 
     ElementHelper.setProperties(jupiter, "name", "jupiter", "age", 5000, "type", "god"); 

     Vertex neptune = graph.addVertex(null); 
     ElementHelper.setProperties(neptune, "name", "neptune", "age", 4500, "type", "god"); 

     Vertex hercules = graph.addVertex(null); 
     ElementHelper.setProperties(hercules, "name", "hercules", "age", 30, "type", "demigod"); 

     Vertex alcmene = graph.addVertex(null); 
     ElementHelper.setProperties(alcmene, "name", "alcmene", "age", 45, "type", "human"); 

     Vertex pluto = graph.addVertex(null); 
     ElementHelper.setProperties(pluto, "name", "pluto", "age", 4000, "type", "god"); 

     Vertex nemean = graph.addVertex(null); 
     ElementHelper.setProperties(nemean, "name", "nemean", "type", "monster"); 

     Vertex hydra = graph.addVertex(null); 
     ElementHelper.setProperties(hydra, "name", "hydra", "type", "monster"); 

     Vertex cerberus = graph.addVertex(null); 
     ElementHelper.setProperties(cerberus, "name", "cerberus", "type", "monster"); 

     Vertex tartarus = graph.addVertex(null); 
     ElementHelper.setProperties(tartarus, "name", "tartarus", "type", "location"); 

     // edges 

     jupiter.addEdge("father", saturn); 
     jupiter.addEdge("lives", sky).setProperty("reason", "loves fresh breezes"); 
     jupiter.addEdge("brother", neptune); 
     jupiter.addEdge("brother", pluto); 

     neptune.addEdge("lives", sea).setProperty("reason", "loves waves"); 
     neptune.addEdge("brother", jupiter); 
     neptune.addEdge("brother", pluto); 

     hercules.addEdge("father", jupiter); 
     hercules.addEdge("mother", alcmene); 
     ElementHelper.setProperties(hercules.addEdge("battled", nemean), "time", 1, "place", Geoshape.point(38.1f, 23.7f)); 
     ElementHelper.setProperties(hercules.addEdge("battled", hydra), "time", 2, "place", Geoshape.point(37.7f, 23.9f)); 
     ElementHelper.setProperties(hercules.addEdge("battled", cerberus), "time", 12, "place", Geoshape.point(39f, 22f)); 

     pluto.addEdge("brother", jupiter); 
     pluto.addEdge("brother", neptune); 
     pluto.addEdge("lives", tartarus).setProperty("reason", "no fear of death"); 
     pluto.addEdge("pet", cerberus); 

     cerberus.addEdge("lives", tartarus); 

     // commit the transaction to disk 
     graph.commit(); 
    } 
} 

, но я получаю ошибки при слежении ..

Exception in thread "main" java.lang.Error: Unresolved compilation problems: The method makeType() is undefined for the type TitanGraph 
    at com.titanos.webservices.GraphOfTheGodsFactory.load(GraphOfTheGodsFactory.java:52) 
    at com.titanos.webservices.GraphOfTheGodsFactory.create(GraphOfTheGodsFactory.java:46) 
    at com.titanos.webservices.exampletest.main(exampletest.java:13) 

Я также прикрепил экран.

enter image description here

Я не могу найти, какую зависимость мне не хватает в этом проекте.

ответ

0

У вас возникла ошибка компиляции, потому что на TitanGraph нет метода makeType(). Если вы посмотрите на Titan 0.4.4 javadoc для TitanGraph, вы увидите доступные методы. См. Также migration notes от Titan 0.3.2 до 0.4.0, которые указывают на нарушение изменений API. GraphOfTheGodsFactory.java упакован в самом Титане, поэтому вы можете видеть из этого кода, как правильно определить схему.

Titan 0.4.4 был выпущен почти 2 года назад. Titan 1.0.0 был выпущен в сентябре 2015 года, и это будет лучшей отправной точкой, если вы начнете работу с Titan. Посетите Titan homepage для получения дополнительной информации и документации для всех версий. Убедитесь, что вы соответствуете документации с версией, против которой вы строите.

Смежные вопросы