Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j服务器插件开发的最佳实践是什么?_Neo4j - Fatal编程技术网

neo4j服务器插件开发的最佳实践是什么?

neo4j服务器插件开发的最佳实践是什么?,neo4j,Neo4j,我能够使用以下文档在我的服务器上安装示例插件: 现在我想开发自己的插件,但我不知道如何调试和单元测试它们。我在哪里可以阅读更多关于此和服务器插件开发最佳实践的信息?您可以像开发简单的java项目一样开发插件,测试插件很简单,只需在单元测试中实例化插件,然后将节点、GraphDatabaseService和参数传递给插件方法并检查结果。我的插件: package ru.a360.neo4j.plugins; import org.neo4j.graphdb.GraphDatabaseServic

我能够使用以下文档在我的服务器上安装示例插件:


现在我想开发自己的插件,但我不知道如何调试和单元测试它们。我在哪里可以阅读更多关于此和服务器插件开发最佳实践的信息?

您可以像开发简单的java项目一样开发插件,测试插件很简单,只需在单元测试中实例化插件,然后将节点、GraphDatabaseService和参数传递给插件方法并检查结果。

我的插件:

package ru.a360.neo4j.plugins;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.server.plugins.*;
import org.neo4j.server.rest.repr.Representation;
import org.neo4j.server.rest.repr.ValueRepresentation;
import org.neo4j.tooling.GlobalGraphOperations;

import java.util.logging.Logger;

@Description("An extension to the Neo4j Server for find routes between two nodes")
public class WarmUp extends ServerPlugin
{
    private Logger logger = Logger.getLogger(WarmUp.class.getName());

    public WarmUp()
    {
    }

    @Name("warm_up")
    @Description("Warm up all nodes and relationships")
    @PluginTarget(GraphDatabaseService.class)
    public Representation warmUp(@Source GraphDatabaseService graphDb)
    {
        long t0 = System.currentTimeMillis();
        int relCount = 0;
        int nodesCount = 0;
        GlobalGraphOperations ggo = GlobalGraphOperations.at(graphDb);
        for (Node n: ggo.getAllNodes())
        {
            for (String prop: n.getPropertyKeys())
            {
                n.getProperty(prop);
            }
            nodesCount++;
        }
        for (Relationship rel: ggo.getAllRelationships())
        {
            for (String prop: rel.getPropertyKeys())
            {
                rel.getProperty(prop);
            }
            relCount++;
        }
        logger.info("warmup;" + (System.currentTimeMillis() - t0) / 1000.0 );
        return ValueRepresentation.string("WARMED UP " + nodesCount + " NODES AND " + relCount + " RELATIONSHIPS");
    }
}
main/java/META-INF/services/org.neo4j.server.plugins.ServerPlugin中有一个新字符串:

ru.a360.neo4j.plugins.WarmUp
我想这样编写测试(test/java/ru/a360/neo4j/plugins/TestNeo.java):

package ru.a360.neo4j.plugins;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class TestNeo {

    @Before
    public void prepareTestData()
    {
    }

    @After
    public void destroyTestDatabase()
    {
    }

    @Test
    public void myTest1()
    {
    }
}