gpt4 book ai didi

java - 在 gremlin 服务器脚本文件中使用自定义库

转载 作者:行者123 更新时间:2023-12-01 19:48:06 27 4
gpt4 key购买 nike

我有两个问题,可以吗?

  1. 我想知道如何在 gremlin 服务器脚本引擎中调用(使用)我自己编写的自定义 Java 代码?因此,例如,我认为 Stephen Mallette 编写了一些 java 函数,这些函数在 gremlin 服务器脚本文件夹内调用,这里是他的函数的链接:

https://github.com/apache/tinkerpop/blob/master/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java

然后在 Gremlin Server 脚本文件夹中,使用 generateModern(final TinkerGraph g) 如下:

globals << [hook : [
onStartUp: { ctx ->
ctx.logger.info("Loading 'modern' graph data.")
org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory.generateModern(graph)
}
] as LifeCycleHook]

如何用我自己编写的 java 函数替换它,以便 gremlin 服务器理解我的 java 函数并在运行时读取它们?我需要将函数编译成 Jar 文件并放入 Lib 文件夹吗?

  • 我通过我构建的 Java 程序而不是 Gremlin 控制台连接到 Gremlin 服务器。我如何在我的java程序中引用和使用图形对象变量。我只能看到和使用图遍历源对象变量(g),它在脚本文件中公开,即
  • globals << [g: graph.traversal()]

    如何公开图形对象变量,即 graph 以便我可以在 Java 程序中使用它?

    非常感谢

    最佳答案

    如果您希望在 Gremlin Server 中公开您自己的 Java 库,只需将其打包到 jar 中并将其添加到 Gremlin Server 类路径中即可。您可以手动执行此操作,只需将 jar 复制到 /lib 目录或通过 gremlin-server.sh install 命令添加即可。如果您选择后者,您可以考虑构建 GremlinPlugin 类(它是您实现的接口(interface)),它允许您设置 Gremlin Server ScriptEngine 的类导入。您可以看到这样一个简单插件的示例 here 。有了该 jar 文件,您就可以在脚本中访问库的类。

    How do i reference and use the graph object variable in my java program

    您只能从 Java 程序访问脚本中的“graph”。对于字节码请求不可能做到这一点。也就是说,除了生成“g”之外,您根本不应该使用 Graph 对象。不建议使用其他用途,因为最佳实践是仅使用 Gremlin 来访问您的图表,并且您只能使用“g”编写 Gremlin。使用“graph”肯定会限制代码的可移植性,并将您绑定(bind)到可能会更改或并非所有图都完全支持的 API。

    关于java - 在 gremlin 服务器脚本文件中使用自定义库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106908/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com